Cod sursa(job #588808)

Utilizator stefaniaaStefania Aungurencei stefaniaa Data 9 mai 2011 17:53:29
Problema Cel mai lung subsir comun Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream.h>
#include<stdio.h>
ifstream f("cmlsc.in");
ofstream g("cmlsc.out");
int a[1025],b[1025],poz[1025];
int n,m,i,k,max;
int verif(int i,int c)
{	if (i>m) return 0;
	else 
		if (a[i]==c) return i;
		else return verif(i+1,c);
}
int main(){
	FILE * stefi;
	stefi=fopen("cmlsc.in","r");
	fscanf(stefi,"%d%d",&m,&n);
	for (i=1;i<=m;i++) fscanf(stefi,"%d",&a[i]);
	k=1;
	for (i=1;i<=n;i++)
	{	fscanf(stefi,"%d",&b[i]);
		poz[k++]=verif(1,b[i]);
		if (!poz[k-1]) { b[i]=0; k--; }
	}
	n=max=1;
	for (i=1;i<k;i++)
	{	if (poz[i]<poz[i+1]) n++;
		else 
			if (n>max) { max=n; m=i; n=1; } 
	}
	g<<max<<'\n';
	for (i=m-max+1;i<=m;i++)
		g<<a[poz[i]]<<' ';
	f.close();
	g.close();
	return 0;	
}