Cod sursa(job #1175058)

Utilizator breahnadavidBreahna David breahnadavid Data 24 aprilie 2014 13:15:23
Problema Cel mai lung subsir comun Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
ifstream f;
ofstream g;

int i,j,a[1024],b[1024],n1,n2,m,c[1024],q;

void cmlsc(int i,int j)
        {
        if(i>0&&j>0)
                {
                if(a[i]==b[j]){
                                c[m]=a[i];
                                m++;
                                cmlsc(i-1,j-1);
                                m--;
                                }
                                else
                if(a[i]!=b[j])
                        {
                        cmlsc(i-1,j);
                        cmlsc(i,j-1);
                        }
                }
                else if(m>q)q=m-1;
        }
int main()
{
f.open("cmlsc.in");
g.open("cmlsc.out");
f>>n1>>n2;

m=1;
for(i=1;i<=n1;i++)f>>a[i];
for(i=1;i<=n2;i++)f>>b[i];
q=0;
cmlsc(n1,n2);


g<<q<<'\n';

while(q>0)
        {
        g<<c[q]<<' ';
        q--;
        }

f.close();
g.close();
return 0;
}