Pagini recente » Cod sursa (job #1886250) | Cod sursa (job #817234) | Cod sursa (job #1624806) | Cod sursa (job #1165326) | Cod sursa (job #1330098)
#include <iostream>
#include<fstream>
#define maxim 1024
using namespace std;
ifstream f("cmlsc.in");
ofstream g("cmlsc.out");
int n,m, a[maxim], b[maxim],sir[maxim],bst=0, d[maxim][maxim];
int main()
{
f>>m>>n;
for(int i=1; i<=m; i++) f>>a[i];
for(int j=1; j<=n; j++) f>>b[j];
for(int i=1;i<=m;++i)
for(int j=1;j<=n;++j)
if (a[i]==b[j]) d[i][j]=d[i-1][j-1]+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[++bst] = a[i], --i, --j;
else if (d[i-1][j] < d[i][j-1])
--j;
else
--i;
g<<bst<<"\n";
for(int i=bst; i; i--) g<<sir[i]<<" ";
return 0; }