Cod sursa(job #260740)

Utilizator cristina07cristina cristina07 Data 17 februarie 2009 15:14:30
Problema Cel mai lung subsir comun Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<iostream>
#include<fstream>
#include<stdio.h>
using namespace std;

int max(int a,int b)
{if(a>b) return a;
else return b;
}
int x[1024],y[1024],c[1024][1024],m,n;
int main()
{int i,j,m,n,c[100][100];
ifstream f("subsir.in");
f>>m>>n;
for(i=1;i<=m;i++)
f>>x[i];
for(j=1;j<=n;j++)
f>>y[j];
f.close();

for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
if(x[i]==y[j])
c[i][j]=c[i-1][j-1]+1;
else c[i][j]=max(c[i-1][j],c[i][j-1]);

ofstream g("subsir.out");
g<<c[m][n]<<endl;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
if(x[i]==y[j])
g<<x[i]<<" ";
g.close();
system("pause");
return 0;
}