/// Copied from https://github.com/microsoft/qsharp-runtime/tree/main/AdvantageBenchmark,
/// updated for the latest Q# syntax. Originally used for testing the performance of the Q# simulator.
operation Main() : Unit {
    use qs = Qubit[25];
    ApplyToEach(H, qs);
    CZ(qs[2], qs[3]);
    CZ(qs[12], qs[13]);
    CZ(qs[22], qs[23]);
    CZ(qs[5], qs[6]);
    CZ(qs[9], qs[10]);
    CZ(qs[15], qs[16]);
    CZ(qs[19], qs[20]);
    ApplyToEach(H, qs);
    CZ(qs[0], qs[1]);
    CZ(qs[4], qs[5]);
    CZ(qs[10], qs[11]);
    CZ(qs[14], qs[15]);
    CZ(qs[20], qs[21]);
    CZ(qs[7], qs[8]);
    CZ(qs[17], qs[18]);
    ApplyToEach(H, qs);
    CZ(qs[15], qs[20]);
    CZ(qs[17], qs[22]);
    CZ(qs[19], qs[24]);
    CZ(qs[6], qs[11]);
    CZ(qs[8], qs[13]);
    ApplyToEach(H, qs);
    CZ(qs[5], qs[10]);
    CZ(qs[7], qs[12]);
    CZ(qs[9], qs[14]);
    CZ(qs[16], qs[21]);
    CZ(qs[18], qs[23]);
    ApplyToEach(H, qs);
    CZ(qs[3], qs[4]);
    CZ(qs[13], qs[14]);
    CZ(qs[23], qs[24]);
    CZ(qs[6], qs[7]);
    CZ(qs[16], qs[17]);
    ApplyToEach(H, qs);
    CZ(qs[1], qs[2]);
    CZ(qs[11], qs[12]);
    CZ(qs[21], qs[22]);
    CZ(qs[8], qs[9]);
    CZ(qs[18], qs[19]);
    ApplyToEach(H, qs);
    CZ(qs[0], qs[5]);
    CZ(qs[2], qs[7]);
    CZ(qs[4], qs[9]);
    CZ(qs[11], qs[16]);
    CZ(qs[13], qs[18]);
    ApplyToEach(H, qs);
    CZ(qs[10], qs[15]);
    CZ(qs[12], qs[17]);
    CZ(qs[14], qs[19]);
    CZ(qs[1], qs[6]);
    CZ(qs[3], qs[8]);
    ApplyToEach(H, qs);
    MResetEachZ(qs);
}
