#include #include #include #include #define INF 1000000000 int b,g,n; int T[1100000]; struct time { int g, t; } A[1100000]; int G[1100000]; int Ga[1100000]; int Gh[1100000]; int B[1100]; struct th { int val, d; } H[1100]; int hn; void bhore(int i) { int q; while(i>0) { if (H[(i-1)/2].valH[2*i+2].val) { H[i].val=H[2*i+1].val; H[i].d=H[2*i+1].d; Gh[H[i].d]=i; i=2*i+1; } else { H[i].val=H[2*i+2].val; H[i].d=H[2*i+2].d; Gh[H[i].d]=i; i=2*i+2; } } if (2*i+1==hn-1) { H[i].val=H[2*i+1].val; H[i].d=H[2*i+1].d; Gh[H[i].d]=i; i=2*i+1; } H[i].val=H[hn-1].val; H[i].d=H[hn-1].d; Gh[H[i].d]=i; hn--; bhore(i); } void Hins(int val, int d) { H[hn].val=val; H[hn].d=d; Gh[d]=hn; hn++; bhore(hn-1); } int cmpg(const void *a, const void *b) { struct time *A=a, *B=b; if (A->gg) return -1; if (A->g>B->g) return 1; if (A->tt) return -1; if (A->t>B->t) return 1; return 0; } void Do() { int i; scanf("%d %d %d ",&b,&g,&n); for (i=0; i=0; i--) Ga[A[i].g]=i; for (i=0; i=b) { printf("LOAD %d %d\n",G[H[0].d]+1,T[i]+1); G[T[i]]=G[H[0].d]; G[H[0].d]=-1; B[H[0].d]=T[i]; Hdel(); Hins(-INF,T[i]); } else { printf("LOAD %d %d\n",hn+1,T[i]+1); G[T[i]]=hn; B[hn]=T[i]; Hins(-INF,T[i]); } } if (A [Ga[T[i]] ].g!=T[i]) { printf("bug1\n"); } if (A [Ga[T[i]] ].t!=i) { printf("bug2 i=%d Ga[T[i]]=%d A=%d\n",i,Ga[T[i]], A[Ga[T[i]]].t); } Ga[T[i]]++; if (A [Ga[T[i]] ].g!=T[i]) H[ Gh[T[i]] ].val = INF; else H[ Gh[T[i]] ].val = A[ Ga[T[i]] ].t; bhore(Gh[T[i]]); } } int main() { int k, nt; scanf("%d ",&nt); for (k=0; k