// @BEGIN_OF_SOURCE_CODE /* @JUDGE_ID: 17243NT 144 C++ "Gentle Brute Force" */ // 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 limit; int nstudents; int curadd, curleft; typedef struct { int id; int bal; } card; card students[30]; int main() { int i; while(ins >> nstudents >> limit) { if(nstudents == 0 || limit == 0) break; for(i = 0; i < nstudents; i++) { students[i].id = i + 1; students[i].bal = 40; } curadd = 0, curleft = 0; while(nstudents > 0) { if(curleft <= 0) { curadd = curadd + 1; if(curadd > limit) curadd = 1; curleft = curadd; } if(students[0].bal > curleft) { card temp; students[0].bal -= curleft; curleft = 0; temp = students[0]; for(i = 1; i < nstudents; i++) students[i - 1] = students[i]; students[nstudents - 1] = temp; } else { outs << setw(3) << students[0].id; curleft -= students[0].bal; for(i = 1; i < nstudents; i++) students[i - 1] = students[i]; nstudents--; } } outs << endl; } return 0; } // @END_OF_SOURCE_CODE