#include <iostream> #include <cstring> #include <cmath> using namespace std; int poz(char k, char cuv[100][100], int n) { int i; for(i=0;i<n;i++) if(cuv[i][0]==k) return i; return -1; } float round(float x, int c) { int i=0, j; while(c!=0) { x=x*10; c--; i++; } if(x*10-int(x)*10>=5)x++; for(j=0;j<i;j++) x=x/10; return x; } int main() { char s[100], cuv[100][100], a[100], *p, q, aux[100], sir[100], arg[100]; int n, m=0, i, m1=0, nr, nr1=0, ok, j; float len; cin>>n; cin.get(); for(i=1;i<=n;i++) { cin.get(a, 100); q=a[0]; strcpy(aux, a+2); strcpy(a, aux); strcpy(cuv[n+i], a); cuv[i][0]= q; cin.get(); } cin.get(s, 100); p=strtok(s, ","); strcpy(sir, p); p=strtok(NULL, ","); while(p) { arg[m]=p[0]; m++; p=strtok(NULL, ","); } p=strtok(s, " "); while(p) { strcpy(a, p); if(a[0]!='%') cout<<a<<" "; else { if(a[1]=='s') { cout<<cuv[poz(arg[m1], cuv, n)]<<" "; m1++; } else { if(strchr(a, 'd')) { len=strlen(cuv[poz(arg[m1], cuv, n)]); strcpy(aux, a+1); strcpy(a, aux); nr1=0; for(i=0;i<strlen(a)-1;i++) { nr=a[i]-'1'; nr1=nr1*10+nr; } while(nr1>len) { cout<<" "; nr1--; } cout<<cuv[poz(arg[m1], cuv, n)]<<" "; } else { strcpy(aux, a+1); strcpy(a, aux); nr1=0; for(i=0;i<strlen(a)-1;i++) { nr=a[i]-'1'; nr1=nr1*10+nr; } len=0; for(i=0;i<strlen(cuv[poz(arg[m1], cuv, n)])-1;i++) { if(cuv[poz(arg[m1], cuv, n)][i]=='.') ok=1; nr=cuv[poz(arg[m1], cuv, n)][i]-'1'; len=len*10+nr; if(ok==1) j++; len=len/pow(10, j); } cout<<round(len, nr1)<<" "; } } } } p=strtok(NULL, " "); return 0; }