#include #include int main(int argc, char *argv[]) { int a[505],b[505],la,lb,f[505],p[505]; int i,j,n,k,max; while (scanf("%d",&la)!=EOF) { for(i=0;if[k])//b[j-1]f[k]是存放到 j时,j前面的最长的子序列 k=j; if(a[i-1]==b[j-1]&&f[k]>=f[j])//逐步优化,要掌握 {f[j]=f[k]+1; p[j]=k; } } } max=0; int t=1; for(i=1;i<=lb;i++) { if(max1;i--) printf("%d ",d[i]); printf("%d\n",d[1]); } return 0; }