Pagini recente » Cod sursa (job #1445428) | Cod sursa (job #3143237) | Diferente pentru implica-te/arhiva-educationala intre reviziile 159 si 223 | Cod sursa (job #623170) | Cod sursa (job #673094)
Cod sursa(job #673094)
#include<fstream>
#define max(a, b) ((a > b) ? a : b)
using namespace std;
int main(){
int m,n,i,j,lungime=0;
int a[1024],b[1024],sir[1024],c[1024][1024];
ifstream f("cmlsc.in");
f>>m;
f>>n;
for(i=1;i<m;i++)
f>>a[i];
for(i=1;i<n;i++)
f>>b[i];
f.close();
for(i=1;i<m;i++)
for(j=1;j<n;j++)
if(a[i]==b[j])
c[i][j]=c[i-1][j-1]+1;
else
c[i][j]=max(c[i][j-1],c[i-1][j]);
for(i=m;j=n;i)
if(a[i]==b[j]){
sir[++lungime]=a[i];
--i;
--j;
}
else if(c[i-1][j]<c[i][j-1])
--j;
else
--i;
ofstream g("cmlscout");
g<<lungime;
for(i=lungime;i!=0;i--)
g<<sir[i];
g.close();
return 0;
}