Pagini recente » Cod sursa (job #513571) | Cod sursa (job #2608872) | Cod sursa (job #2618593) | Cod sursa (job #1199227) | Cod sursa (job #166862)
Cod sursa(job #166862)
#include <stdio.h>
long sir1[1025],sir2[1025],a[1025][1025],i,j,n,m,k,p[1025],v[1025],l;
int main()
{
freopen("cmlsc.in","r",stdin);
freopen("cmlsc.out","w",stdout);
scanf("%ld %ld",&n,&m);
for(i=1;i<=n;i++)
scanf("%ld",&sir1[i]);
for(i=1;i<=m;i++)
scanf("%ld",&sir2[i]);
for(i=n;i>=1;i--)
for(j=m;j>=1;j--)
{
if(sir1[i]==sir2[j])
{
k++;
a[i][j]=a[i+1][j+1]+1;
v[k]=a[i][j];
p[k]=i;
}
else if(a[i][j+1]>a[i+1][j])a[i][j]=a[i][j+1];
else a[i][j]=a[i+1][j];
}
l=a[1][1];
printf("%ld\n",l);
/*for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
printf("%ld",a[i][j]);
printf("\n");
}*/
for(i=k;i>=1;i--)
{
if(v[i]==l)
{
l--;
printf("%ld ",sir1[p[i]]);
}
}
return 0;
}