Pagini recente » Cod sursa (job #3362496) | Cod sursa (job #3363420) | Cod sursa (job #3362495) | Cod sursa (job #3362382) | Cod sursa (job #3362732)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("cmlsc.in");
ofstream out ("cmlsc.out");
int m, n;
int a[1030], b[1030];
int dp[1030][1030];
vector <int> v;
int main()
{
in >> m >> n;
for (int i = 1; i <= m; i++)
{
in >> a[i];
}
for (int i = 1; i <= n; i++)
{
in >> b[i];
}
for (int i = 1; i <= m; i++)
{
for(int j = 1; j <= n; j++)
{
if(a[i] == b[j])
{
dp[i][j] = dp[i - 1][j - 1] + 1;
v.push_back(a[i]);
} else
{
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
}
}
}
out << dp[m][n] << "\n";
for (auto& x : v)
{
out << x << " ";
}
return 0;
}