Pagini recente » Cod sursa (job #1493128) | Cod sursa (job #1034934) | Cod sursa (job #1108883) | Cod sursa (job #2448562) | Cod sursa (job #1493263)
#include <iostream>
#include <fstream>
#define lmax 1024
using namespace std;
ifstream fin("cmlsc.in");
ofstream fout("cmlsc.out");
int m, n, a[lmax], b[lmax], d[lmax][lmax], sir[lmax], best;
/*int max(int a, int b)
{
(a > b) ? a : b;
}*/
int main()
{
fin>>m>>n;
for (int i=1; i<=m; ++i)
fin>>a[i];
for (int i=1; i<=n; ++i)
fin>>b[i];
for (int i=1; i<=m; ++i)
for (int j=1; j<=n; ++j)
if (a[i]==b[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=m, j=n; i; )
if (a[i]==b[j])
sir[++best]=a[i], --i, --j;
else if (d[i-1][j] < d[i][j-1])
--j;
else
--i;
fout<<best<<'\n';
for (int i=best; i>=1; --i)
fout<<sir[i]<<" ";
return 0;
}