Cod sursa(job #1295417)

Utilizator bence21Bako Bence bence21 Data 19 decembrie 2014 14:22:26
Problema Cel mai lung subsir comun Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include<fstream>
using namespace std;
int main()
{
    ifstream f("cmlsc.in");
    ofstream g("cmlsc.out");
    int n,m,i,j,a[1024],b[1024],c[1024],ma=0,p,d[1024],x=0,p2;
    f>>n>>m;
    for(i=0;i<n;i++)
        f>>a[i];
    for(j=0;j<m;j++)
        f>>b[j];
    i=0;
    while(i<n)
    {
        j=0;
        while(j<m&&a[i]!=b[j])j++;
        if(a[i]==b[j]&&j<m)
        {
            p2=i;
            ma=0;
            c[ma++]=a[i];
            p=j+1;
            i++;
            while(i<n&&p<m)
            {
                j=p;
                while(j<m&&a[i]!=b[j])j++;
                if(a[i]==b[j]&&j<m)
                {
                    c[ma++]=a[i];
                    p=j+1;
                }
                i++;
            }
            if(ma>x)
            {
                x=ma;
                for(int k=0;k<x;k++)
                    d[k]=c[k];
            }
            i=p2;
        }
        i++;
    }
    g<<x<<"\n";
    for(int k=0;k<x;k++)
        g<<d[k]<<" ";
    f.close();
    g.close();
    return 0;
}