Cod sursa(job #267422)

Utilizator magda_ursuleanUrsulean Magda magda_ursulean Data 27 februarie 2009 11:52:28
Problema Cel mai lung subsir comun Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream.h>
#include <iostream.h>
#define NMax 1025




int m,n,i,j,a[NMax],b[NMax],poz,sol[NMax],mx,mxabs,solabs[NMax],k;

void citire()
{ifstream fin("cmlsc.in");
 fin>>m>>n;
 for(i=1; i<=m; i++) fin>>a[i];
 for(i=1; i<=n; i++) fin>>b[i];
}


int main()
{
ofstream fout("cmlsc.out");
 citire();
 i=1;
 while(i<=n)
  { j=1;
    while (j<=m)
      { if(b[i]==a[j] && poz<j)
	    {	mx++;
		sol[++k]=b[i];
		poz=j;// int curent=i;
		j++; i++;

	    }

	 else { i++;}

       }
     if(mx>mxabs) { mxabs=mx;
		    for (int p=1; p<=k; p++) solabs[p]=sol[p];
		   }
  }

/* for (i=1; i<=n; i++)
  { for(j=1; j<=m; j++)
     if (b[i]==a[j] && poz<i)
	     {	mx++;
		sol[++k]=b[i];
		poz=i;
		}

    if(mx>mxabs) { mxabs=mx;
		    for (int p=1; p<=k; p++) solabs[p]=sol[p];
		  }
   }    */
 fout<<mxabs<<endl;
 for(i=1; i<=mxabs; i++) fout<<solabs[i]<<" ";
 return 0;
}