#include <iostream> #include <algorithm> #include <cmath> #include <cstdio> #include <cstring> #include <map> using namespace std; #define NV 100005 int aind,bind,C[2*NV],cind,pre; struct mystly { int value,time; }A[NV],B[NV]; bool ok[NV]; int main(){ int n,tmp,ca=0;char str[4]; freopen("myout.out","w",stdout);*/ while(scanf("%d",&n)){ if(n==0)break; printf("Case #%d:\n",++ca); aind=0,bind=0,cind=0; for(int i=1 ;i<=n ;i++){ scanf("%s",str); if(str[1]=='u'){ scanf("%s%d",str,&tmp); if(str[0]=='A'){ A[++aind].time=i; A[aind].value=tmp; } else{ B[++bind].time=i; B[bind].value=tmp; } } else if(str[1]=='o'){ scanf("%s",str); if(str[0]=='A'){ if(aind>0){ printf("%d\n",A[aind--].value); } else{ printf("%d\n",C[cind--]); } } else{ if(bind>0){ printf("%d\n",B[bind--].value); } else{ printf("%d\n",C[cind--]); } } } else if(str[1]=='e'){ scanf("%s%s",str,str); int ii=1,jj=1; while(ii<=aind && jj<=bind){ if(A[ii].time<B[jj].time){ C[++cind]=A[ii++].value; } else{ C[++cind]=B[jj++].value; } } while(ii<=aind)C[++cind]=A[ii++].value; while(jj<=bind)C[++cind]=B[jj++].value; aind=0;bind=0; } } } return 0; }
|