/* Look at me! Look at me! Look at how large the monster inside me has become! */ #include #include #include #include #include #include #define FIT(a,b) for(vector::iterator a=b.begin();a!=b.end();a++) #define FITP(a,b) for(vector >::iterator a=b.begin();a!=b.end();a++) #define RIT(a,b) for(vector::reverse_iterator a=b.end();a!=b.begin();++a) #include #define ROF(a,b,c) for(int a=b;a>=c;--a) #include #include #define FOR(a,b,c) for(int a=b;a<=c;++a) #define REP(a,b) for(register int a=0;a #include #include #include #define f cin #define g cout #include #define INF 0x3f3f3f3f #define debug cerr<<"OK"; #define pii pair #define mp make_pair #define pb push_back #define fi first #define se second #define ld long double #define ll long long #define ull unsigned long long #define eps 1.e-7 #define BUFMAX 10100100 #define M 100100 #define N 1010 #define NM 2000100 #define mod 1000000007 #define eps 1.e-10 using namespace std; /* int dx[]={-1,-1,-1,0,1,1,1,0}; int dy[]={-1,0,1,1,1,0,-1,-1}; */ char sol[N],A[N],B[N],C[300]; int pl,m,poz[N],ta,r,tb,a[300]; char c[300]; int main () { #ifndef ONLINE_JUDGE freopen("a.in","r",stdin); freopen("a.out","w",stdout); #endif f.get(A,N); f.get(); f.get(B,N); FOR(i,0,9) { C[i]=i+'0'; } C[10]='A'; C[11]='B'; C[12]='C'; C[13]='D'; C[14]='E'; C[15]='F'; for(int i=0;A[i];++i) { if(A[i]==',') { ++pl; ++i; int x=0; while(A[i]<='9'&&A[i]>='0') { x=x*10+A[i]-'0'; i++; } poz[pl]=x*2; --i; continue; } } FOR(i,0,255) sol[i]='0'; for(;A[ta]&&B[tb];) { while(A[ta]==' ') ++ta; while(B[tb]==' ') ++tb; if(!B[tb]||!A[ta]) break; if(A[ta]==B[tb]) { ++ta; ++tb; continue; } if(A[ta]=='%') { ++m; ++ta; if(A[ta]=='u') { int x=0; while(B[tb]<='9'&&B[tb]>='0'&&B[tb]) { x=x*10+B[tb++]-'0'; } r=0; while(x) { a[++r]=x%256; x/=256; } while(r!=4) a[++r]=0; FOR(i,1,r) { sol[poz[m]]=C[a[i]/16]; ++poz[m]; sol[poz[m]]=C[a[i]%16]; ++poz[m]; } } else if(A[ta]=='x') { r=0; tb+=2; while(B[tb]!=' '&&B[tb]) c[++r]=B[tb++]; while(r!=8) { r+=2; ROF(i,r,1) c[i]=c[i-2]; c[1]=c[2]='0'; } ROF(i,4,1) { sol[poz[m]++]=c[r-1]; sol[poz[m]++]=c[r]; r-=2; } } else if(A[ta]=='c') { r=0; a[++r]=B[tb++]; sol[poz[m]++]=C[a[1]/16]; sol[poz[m]++]=C[a[1]%16]; } else { r=0; while(B[tb]!=' '&&B[tb]) c[++r]=B[tb++]; FOR(i,1,r) { sol[poz[m]++]=C[c[i]/16]; sol[poz[m]++]=C[c[i]%16]; } } ++ta; } } FOR(i,0,255) g<