Cod sursa(job #503991)

Utilizator IAmASuperCerealVictor Andrei IAmASuperCereal Data 26 noiembrie 2010 08:05:25
Problema Cel mai lung subsir comun Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 7.88 kb
//////////////////////////////////////////////////[#\:xx        xx:\#[//////////////////////////////////////////////////
//////////////////////////////////////////[\x^@HpN77777777777777777777NpH&^x\[//////////////////////////////////////////
/////////////////////////////////////[x^dp77777777777777777777777777777777777Np@ :[/////////////////////////////////////
/////////////////////////////////[x&p77777777777777777777777777777777777777777777773_x[/////////////////////////////////
//////////////////////////////#^3777777777777777777777777777777777777777777777777777777H #//////////////////////////////
///////////////////////////#^p7777777777777777777777777777777777777777777777777777777777773 #///////////////////////////
////////////////////////[ H777777777777777777777777777777777777777777777777777777777777777777Hx[////////////////////////
//////////////////////#^W7777777777777777777777777777777777777777777777777777777777777777777777W^[//////////////////////
////////////////////#&N77777777777777777777777777777777777777777777777777777777777777777777777777N_[////////////////////
//////////////////[_N777777777777777777777777777777777777777777777777777777777777777777777777777777N^[//////////////////
///////////////// W7777777777777777777777777777777777777777777777777777777777777777777777777777777777Wx/////////////////
///////////////#H77777W3Hddd3W77777777777777777777777777777777777777777777NpHdddd3W77777777777777777777d#///////////////
////////////// N773_x[////////[\ dN777777777777777777777777777777777773_x#/////////[\ @W7777777777777777Nx//////////////
////////////[&77H\///# @pWNWH_:///[ 3777777777777777777777777777777p #///# &3WNNpH_x////:&N777777777777777_/////////////
///////////[H7N ///_zMMMMMMMP@#//////xp77777777777777777777777777px///:3zMMMMMMMMME [/////[_777777777777777d[///////////
//////////[37W\//\EMMMMMMMMQ#/////////[@777777777777777777777777&[//xEMMMMMMMMMMMp//////////\377777777777777H[//////////
/////////[37N\//xPMMMMMMMMM_////////////_7777777777777777777777x//[WMMMMMMMMMMMMM[///////////[d77777777777777H[/////////
/////////H77x//\PMMMMMMMMMM3/////////////@77777777777777777777 //#zMMMMMMMMMMMMMMx////////////[H77777777777777@/////////
////////_773///9MMMMMMMMMMMM@[///////[x//[W777777777777777777@///EMMMMMMMMMMMMMMMDx////////\ //#N77777777777777 ////////
///////:777 //xMMMMMMMMMMMMMMD3^x:x^pPL#//^777777777777777777#//_MMMMMMMMMMMMMMMMMMJd ::x&7LL[//_777777777777777#///////
///////p777#//dMMMMMMMMMMMMMMMMMMMMMMMM_//\77777777777777777p///JMMMMMMMMMMMMMMMMMMMMMMMMMMMM_//:777777777777777H///////
////// 7777[//3MMMMMMMMMMMMMMMMMMMMMMMM3//#77777777777777777d///PMMMMMMMMMMMMMMMMMMMMMMMMMMMM3//[7777777777777777x//////
//////37777\//@MMMMMMMMMMMMMMMMMMMMMMMMd//#77777777777777777H///DMMMMMMMMMMMMMMMMMMMMMMMMMMMMd//#7777777777777777H//////
/////\77777 //\MMMMMMMMMMMMMMMMMMMMMMMMx//x77777777777777777N[//WMMMMMMMMMMMMMMMMMMMMMMMMMMMMx//x77777777777777777#/////
/////^77777p///^&&&&&&&&&&&&&&&&&&&&&&&///d777777777777777777 //\&&&&&&&&&&&&&&&&&&&&&&&&&&&_///H77777777777777777 /////
/////d777777 ////////////////////////////x7777777777777777777W[//////////////////////////////// 777777777777777777&/////
/////p7777777WWWWWWWWWWWWWWWWWWWWWWWWWWWWN77777777777777777777NWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW7777777777777777777H/////
/////W7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773/////
/////W7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773/////
/////p777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777H/////
/////d7777777777NNNNNNNNNNNNNNNNNNNNNNNNNNNN7777777777777777777777777777777777777777777777777777777777777777777777&/////
///// 777777773[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[#W7777777777777777777x/////
/////#77777777pxxxx///[####################################################################[//x7777777777777777777[/////
//////377777777777N///x                                                                    x///H77777777777777777d//////
//////x777777777777#//\                                                                     #//x77777777777777777://////
///////377777777777_//[                                                                     ://[7777777777777777H///////
///////\77777777777N#//\                                                                    x///N77777777777777N#///////
////////^77777777777d///x                                                                   x///777777777777777 ////////
/////////d77777777777 //[                                                                   \//#77777777777777@/////////
/////////[377777777777x//[                                                                  [//^7777777777777d[/////////
//////////[37777777777Nx//[                                                                \//[W777777777777H[//////////
///////////[H7777777777Nx//[x                                  ^^___^^                    :///d777777777777@[///////////
/////////////_77777777777 ///x                           ^dp7EzDDDDDDDzJ7pd^             :///@777777777777^/////////////
//////////////xN7777777777&[//\                       _3EDDDDDDDDDDDDDDDDDDDEp&         #//[d77777777777Wx//////////////
///////////////#d77777777773#//[x                   @7DDDDDDDDDDDDDDDDDDDDDDDDD9d     :[//\p77777777777@[///////////////
/////////////////xW777777777N^[//#x               _7DDDDDDDDDDDDDDDDDDDDDDDDDDDDD9& x[//[&77777777777px/////////////////
//////////////////[^N777777777Wx///#x            dzDDDDDDDDDDDDDDDDDDDDDDDDDDDDDz3x[//[^N7777777777W [//////////////////
////////////////////[_N7777777773x///#x         HDDDDDDDDDDDDDDDDDDDDDDDDDDDDzW^#///#&N7777777777N^[////////////////////
//////////////////////[^W777777777p [//[#x     &QDDDDDDDDDDDDDDDDDDDDDDDDQE3 #///[ H77777777777p [//////////////////////
/////////////////////////xd777777777N&:////#\x EDDDDDDDDDDDDDDDDDDDDDJNd #[///# dN77777777777dx/////////////////////////
///////////////////////////# 3777777777N@ #////[x^@3W7EJzzzJE9NpH& :[/////#x_p777777777777H [///////////////////////////
//////////////////////////////# HN777777777NH_x\[//////////////////[#x &HW777777777777Nd #//////////////////////////////
/////////////////////////////////[x_3N77777777777W3d@&^^    ^^_@d3W777777777777777NH^:[/////////////////////////////////
/////////////////////////////////////[: @3N7777777777777777777777777777777777N3& \[/////////////////////////////////////
//////////////////////////////////////////[#x &d3WN777777777777777777NW3d_ x#[//////////////////////////////////////////
//////////////////////////////////////////////////[[#\:xx      xx:\#[[//////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include<stdio.h>
#define input "cmlsc.in"
#define output "cmlsc.out"
#define N 1031
int n,m,x;
int s[N],t[N],v[N];
int a[N][N];
void open()
{
	freopen(input,"r",stdin);
	freopen(output,"w",stdout);
}
void read()
{
	int i;
	scanf("%d",&n);
	scanf("%d",&m);
	for(i=1;i<=n;i++)
		scanf("%d",&s[i]);
	for(i=1;i<=m;i++)
		scanf("%d",&t[i]);
}
int max(int a,int b)
{
	return (a>b?a:b);
}	
void build()
{
	
	int i,j;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
		{	
			if(s[i]==t[j])
				a[i][j]=a[i-1][j-1]+1;
			else
				if(s[i]!=t[j])
					a[i][j]=max(a[i-1][j],a[i][j-1]);
		}

}


void write()
{
	int i;
	for(i=x;i>=1;--i)
		printf("%d",v[i]);
}
void trace()
{
	while(n && m)
	{
		if(s[n]==t[m])
		{
			v[++x]=s[n];
			n--;
			m--;
			continue;
		}
		if(max(a[n-1][m],a[n][m-1])==a[n-1][m])
			n--;
		else
			m--;
	}
	write();
}
int main()
{
	open();
	read();
	build();
	printf("%d\n",a[n][m]);
	trace();
	return 0;
}