Pagini recente » Cod sursa (job #1801882) | Cod sursa (job #7158) | Cod sursa (job #1450414) | Cod sursa (job #1147768) | Cod sursa (job #552842)
Cod sursa(job #552842)
#include<fstream>
#include<algorithm>
using namespace std;
ofstream g("cmlsc.out");
int i,j,n,m,a[1025],b[1025],l[1025][1025],d[1025],t=0;
void det()
{
int i,j;
for(i=n;i>=1;i--)
for(j=m;j>=1;j--)
if(a[i]==b[j])
l[i][j]=l[i+1][j+1]+1;
else
l[i][j]=max(l[i+1][j],l[i][j+1]);
}
void afis()
{
int i,j;
for(i=n,j=m;i;)
if(a[i]==b[j])
d[++t]=a[i],i--,j--;
else
if(l[i-1][j]<l[i][j-1])
j--;
else
i--;
}
int main()
{
ifstream f("cmlsc.in");
f>>n>>m;
for(i=1;i<=n;i++)
f>>a[i];
for(j=1;j<=m;j++)
f>>b[j];
det();
g<<l[1][1]<<"\n";
afis();
for(i=t;i>=1;i--)
g<<d[i]<<" ";
return 0;
}