#include #include #include #include #include #include #include #include #include #include #include using namespace std; const int MAX=1005,INF=1<<30; const string END="#CODE-END"; int len; map mymap; map::iterator ite; vector A,B; int cnt; int f[MAX][MAX]; int ma[MAX],mb[MAX]; vector a,b; int Test; void read(vector &t,vector &arr){ string s; while(getline(cin,s)){ if(s==END) break; ite=mymap.find(s); if(ite==mymap.end()) mymap[s]=len++; t.push_back(s); arr.push_back(mymap[s]); } return ; } void createM(){ int n1=(int)a.size()-1,n2=(int)b.size()-1; memset(f,0,sizeof(f)); for(int i=n1;i>=1;i--){ for(int j=n2;j>=1;j--){ if(a[i]==b[j]) f[i][j]=f[i+1][j+1]+1; else f[i][j]=max(f[i+1][j],f[i][j+1]); } } int L=f[1][1]; cnt=f[1][1]; int x = -1,c=0; for(int i = 1; i<=n1; i++) { for(int j = 1; j<= n2; j++) { if(a[i] == b[j] && f[i][j] == L && j > x) { x = j; L--; ma[c]=i-1; mb[c]=j-1; x = j; c++; break; } } } return ; } struct DD{ bool isM; int b,e; }; DD DA[MAX*3],DB[MAX*3]; void cut(){ int front=0,rear=0; int len=0; for(int i=0;i<2*cnt;i++,len++){ rear=ma[len]; if(front>Test; cin.ignore(); while(Test--){ cout<<"Case "<