Cod sursa(job #1337032)

Utilizator blankBalmos Teodora blank Data 8 februarie 2015 15:32:14
Problema Cel mai lung subsir comun Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
using namespace std;

ifstream fin("cmlsc.in");
ofstream fout("cmlsc.out");

int n,m,t,y[1025],v[1025],w[1025],i,z;

int cmlsc(int n, int m, int y[1025], int &t)
{
    if(m==0 || n==0)
        return 0;
    else
    {
        if(v[n]==w[m])
        {
            y[t]=v[n];
            t++;
            return 1+cmlsc(n-1,m-1,y,t);
        }
        else
            return max(cmlsc(n,m-1,y,t), cmlsc(n-1,m,y,t));

    }
}

int main()
{
    fin>>n>>m;

    for(i=1;i<=n;++i)
        fin>>v[i];

    for(i=1;i<=m;++i)
        fin>>w[i];

    z=cmlsc(n,m,y,t);

    fout<<z<<'\n';

    for(i=z-1;i>=0;--i)
        fout<<y[i]<<" ";

    return 0;
}