USACO 3.4 American Heritage
数据结构基础。忘了,还得看以前写的。。
1 /* 2 ID: cuizhe 3 LANG: C++ 4 TASK: heritage 5 */ 6 #include<stdio.h> 7 #include<string.h> 8 void build(int n,char *s1,char *s2,char *s) 9 { 10 int i; 11 if(n <= 0) return ; 12 for(i = 0; i < n; i ++) 13 { 14 if(s1[0] == s2[i]) 15 break; 16 } 17 build(i,s1+1,s2,s); 18 build(n-i-1,s1+i+1,s2+i+1,s+i); 19 s[n-1] = s1[0]; 20 } 21 int main() 22 { 23 freopen("heritage.in","r",stdin); 24 freopen("heritage.out","w",stdout); 25 int a; 26 char p1[1000],p2[1000],p3[1000]; 27 scanf("%s%s",p2,p1); 28 a=strlen(p1); 29 build(a,p1,p2,p3); 30 p3[a]='\0'; 31 printf("%s\n",p3); 32 return 0; 33 }