// @BEGIN_OF_SOURCE_CODE /* @JUDGE_ID: 17243NT 133 C++ "Simulation" */ // Send to judge@uva.es #include #include #include #ifdef ONLINE_JUDGE #define ins cin #define outs cout #else #define ins fin #define outs fout ifstream fin("myprog.in"); ofstream fout("myprog.out"); #endif int eeny[110]; int napplic, ntotal; int ccw, cw; int ncw, nccw; int xcw, xccw; bool matchend(); void getnext(); int main() { int i, j; bool first; while(ins >> ntotal >> ccw >> cw) { if(ntotal == 0 || cw == 0 || ccw == 0) break; napplic = ntotal; for(i = 0; i < napplic; i++) eeny[i] = i + 1; xccw = 1; xcw = napplic; first = true; while(napplic > 0) { getnext(); if(!first) outs << ","; else first = false; outs << setw(3) << eeny[nccw]; if(nccw != ncw) outs << setw(3) << eeny[ncw]; for(i = 0, j = 0; i < napplic; i++) if(i != nccw && i != ncw) eeny[j++] = eeny[i]; napplic = j; } cout << endl; } return 0; } void getnext() { int a, b; for(a = 0; a < napplic; a++) if(eeny[a] == xccw) break; for(b = 0; b < napplic; b++) if(eeny[b] == xcw) break; nccw = (a + ccw - 1) % napplic; xccw = eeny[(nccw + 1) % napplic]; ncw = (cw * napplic + b - cw + 1) % napplic; xcw = eeny[(ncw + napplic - 1) % napplic]; if(xccw == eeny[ncw]) { xccw = eeny[(nccw + 2) % napplic]; xcw = eeny[(ncw + 2 * napplic - 2) % napplic]; } } // @END_OF_SOURCE_CODE