#include #include #include #include #include using namespace std; char sta[1001]; char stb[1001]; char stc[1001]; int lena,lenb,lenc; int dp[1001][1001]; int dpf[1001][1001]; struct list { int x; int y; }node,n1,n2; vectorvec[5]; void dps() { int i,j; for(i=0;i=0;i--) if(sta[i]==stb[lenb-1]) for(i;i>=0;i--)dpf[i][lenb-1]=1; for(i=lenb-1;i>=0;i--) if(sta[lena-1]==stb[i]) for(i;i>=0;i--)dpf[lena-1][i]=1; for(i=lena-2;i>=0;i--) { for(j=lenb-2;j>=0;j--) { if(sta[i]==stb[j])dpf[i][j]=dpf[i+1][j+1]+1; else dpf[i][j]=max(dpf[i+1][j],dpf[i][j+1]); } } } void init() { memset(dp,0,sizeof(dp)); memset(dpf,0,sizeof(dpf)); vec[0].clear(); vec[1].clear(); gets(sta); gets(stb); gets(stc); lena=strlen(sta); lenb=strlen(stb); lenc=strlen(stc); } void sear(char str[],int pos) { int lens=strlen(str); int i,j,k; for(i=0;i=0&&n2.x-1>=0)c1=dp[n1.x-1][n2.x-1]; if(n1.y+1