Pagini recente » Cod sursa (job #87627) | Cod sursa (job #2076380) | Cod sursa (job #1933841) | Cod sursa (job #2150607) | Cod sursa (job #2306445)
#include <bits/stdc++.h>
using namespace std;
ifstream in("cmlsc.in");
ofstream out("cmlsc.out");
int v1[1050],v2[1050],d[1026][1026],rez[1050];
int n1,n2,cnt;
int main()
{
in>>n1>>n2;
for (int i = 1;i <= n1;++i) in>>v1[i];
for (int i = 1;i <= n2;++i) in>>v2[i];
for (int i = 1;i <= n1;++i)
for (int j = 1;j <= n2;++j)
if (v1[i] == v2[j])
d[i][j] = 1 + d[i - 1][j - 1];
else
d[i][j] = max(d[i - 1][j],d[i][j - 1]);
for (int i = n1,j = n2;i;)
{
if (v1[i] == v2[j])
{rez[++cnt] = v1[i];
--i; --j;}
else
{if (d[i - 1][j] < d[i][j - 1])
--j;
else
--i;}
}
out<<cnt<<"\n";
for (int i = cnt;i >= 1;--i)
out<<rez[i]<<" ";
return 0;
}