Pagini recente » Cod sursa (job #1399751) | Cod sursa (job #2259715) | Cod sursa (job #1586138) | Cod sursa (job #1712804) | Cod sursa (job #1755090)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("cmlsc.in");
ofstream out("cmlsc.out");
int d[1025][1025];
int n, m, a[1025], b[1025], v[1025], k=0, maxim;
int main ()
{
in>>n>>m;
for (int i=1; i<=n; i++)
in>>a[i];
for (int i=1; i<=m; i++)
in>>b[i];
for (int i=1; i<=n; i++)
{
for (int j=1; j<=m; 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]);
}
}
maxim = d[n][m];
int x = n;
int y = m;
while (maxim)
{
if (a[x] == b[y])
{
v[maxim] = a[x];
maxim--;
x--;
y--;
}
else
x--;
}
out<<d[n][m]<<'\n';
for (int i=1; i<=d[n][m]; i++) out<<v[i]<<' ';
return 0;
}