Pagini recente » Cod sursa (job #1384499) | Cod sursa (job #2972603) | Cod sursa (job #1733421) | Cod sursa (job #1747427) | Cod sursa (job #1651686)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cmlsc.in");
ofstream fout("cmlsc.out");
int rs[1025],A[1025],B[1025],M,N,D[1025][1025];
int main(){
int j,i,r;
fin >> N >> M;
for(i = 1;i<=N;i++){
fin >> A[i];
}
for(i = 1;i<=M;i++){
fin >> B[i];
}
for(i = 1;i<=N;i++)
for(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]);
}
fout << D[N][M]<<'\n';
for(i = N,j = M;i; ){
if(A[i] == B[j]){
rs[++r] = A[i];
i--;
j--;
}else
if(D[i-1][j] < D[i][j-1]) j--; else i--;
}
for(i = r;i>0;--i) fout << rs[i] <<' ';
return 0;
}