Pagini recente » Cod sursa (job #539608) | Cod sursa (job #2386394) | Cod sursa (job #1097960) | Cod sursa (job #874709) | Cod sursa (job #2228391)
#include <iostream>
#include <bits/stdc++.h>
#define NN 1024
using namespace std;
int n,m;
int imax;
int vn[NN],vm[NN];
int a[NN];
int pred[NN];
int mmaxa[NN];
int inversator[NN];
int lll[NN][NN];
vector <int> vv[NN];
int main()
{
ifstream f("cmlsc.in");
ofstream g("cmlsc.out");
f>>n>>m;
for (int i=1; i<=n; i++){
f>>vn[i];
}
for (int i=1; i<=m; i++){
f>>vm[i];
}
int s=0;
for (int i=1; i<=n; i++){
for (int j=1; j<=m; j++){
if (vn[i]==vm[j]){
lll[i][j]=lll[i-1][j-1]+1;
}
else{
lll[i][j]=max(lll[i-1][j], lll[i][j-1]);
}
}
}
int i=n;
int j=m;
while ((i>0)&&(j>0)){
if ((lll[i][j]==lll[i-1][j-1]+1)&&(vn[i]==vm[j])){
a[s]=vn[i];
s++;
i--;
j--;}
else if (lll[i][j]==lll[i-1][j]) {i--;}else {j--;}
}
g<< lll[n][m]<< endl;
for (int j=s-1; j>=0; j--)
{
g<<a[j]<<' ';
}
}