#include #include #include #define N 250000 #define M 300000 #define loop(i) pole[(start+i)%N] #define loopd(i) poled[(start+i)%N] int poled[N]; int pole[N]; int start; int ldel, tok; int main(void) { int pocet, c_ulohy; scanf("%d\n", &pocet); for (c_ulohy =0; c_ulohy < pocet; c_ulohy++) { int i,j,k; start=0; ldel=0; printf("Zadani %d:\n", c_ulohy+1); tok=0; while(1) { int delka, ext; scanf("%d %d", &delka, &ext); if (!delka && !ext) break; tok++; printf("%d\n", (ldel?(tok-loop(0)):0)); while ((delka >= loopd(0)) && (ldel > 0)) { delka -= loopd(0); start=(start+1)%N; ldel--; } if ((ldel == 0) && (ext > 0)) { loop(0)=tok; loopd(0)=ext; ldel=1; } else if (delka > 0) { loopd(0) -= delka; for (i=0; ((ext > 0) && (ldel > i)); i++) ext -= loopd(i); if (ext > 0) { loop(i) = tok; loopd(i) =ext; ldel++; } } } printf("\n"); } return 0; }