1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 int a[50],b[50],c[50],d[50][50],i,j,n,k,t,maxd; 6 scanf("%d",&n); 7 for(i=0;i<n;i++) 8 { 9 scanf("%d",&t); 10 c[t-1]=i; 11 } 12 while(scanf("%d",&t)!=EOF) 13 { 14 a[t-1]=0; 15 for(i=1;i<n;i++) 16 { 17 scanf("%d",&t); 18 a[t-1]=i; 19 } 20 for(i=0;i<n;i++) 21 for(j=0;j<n;j++) 22 { 23 if(c[i]==a[j]) 24 b[j]=i; 25 } 26 memset(d,0,sizeof(d)); 27 maxd=0; 28 for(k=1;k<=n;k++) 29 { 30 for(j=k;j<n;j++) 31 { 32 if(b[j]>b[k-1]&&d[k-1][j]<d[k-1][k-1]+1) 33 d[k][j]=d[k-1][k-1]+1; 34 else 35 d[k][j]=d[k-1][j]; 36 if(maxd<d[k][j]) 37 maxd=d[k][j]; 38 } 39 40 } 41 /* for(i=1;i<=n;i++) 42 { 43 for(j=0;j<n;j++) 44 printf("%d ",d[i][j]); 45 printf(" "); 46 } 47 printf(" ");*/ 48 printf("%d ",maxd+1); 49 } 50 return 0; 51 }