Cod sursa(job #632027)

Utilizator ionut2103Covalschi Ionut ionut2103 Data 10 noiembrie 2011 08:47:29
Problema Cel mai lung subsir comun Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream>
using namespace std;

int i,j,n,m,a[1024],b[1024],d[1024][1024],c[1024],rez=0;
int main()
{
	ifstream f("cmlsc.in");
	ofstream g("cmlsc.out");
	f>>n>>m;
	for(i=1;i<=n;i++)
		f>>a[i];
	for(j=1;j<=m;j++)
		f>>b[j];
	
	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
				if(d[i-1][j]>d[i][j-1])
					d[i][j]=d[i-1][j];
				else
					d[i][j]=d[i][j-1];
				
				i=n;
				i=n,j=m;
				while(i)
					if(a[i]==b[j])
						c[++rez]=a[i],i--,j--;
					else
						if(d[i-1][j]<d[i][j-1])
							j--;
						else
							i--;
						g<<rez<<"\n";
						for(i=rez;i>=1;i--)
							g<<c[i]<<" ";
						}
				return 0;
}