Cod sursa(job #1235654)

Utilizator sebinsteanuDumitriu Sebastian sebinsteanu Data 30 septembrie 2014 09:29:41
Problema Cel mai lung subsir comun Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.43 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("cmlsc.in");
ofstream out("cmlsc.out");
int ma[260][260],n,m,v[260],p=0;
struct nod
{
    int v;
    nod *urm;
}*first1,*last1,*nou1,*first2,*nou2,*last2;
void citire()
{
    int i;
    nou1=new nod;
    in>>nou1->v;
    nou1->urm=NULL;
    first1=nou1;
    for(i=1; i<m; i++)
    {
        last1=new nod;
        nou1->urm=last1;
        in>>last1->v;
        last1->urm=NULL;
        nou1=last1;
    }
    nou2=new nod;
    in>>nou2->v;
    nou2->urm=NULL;
    first2=nou2;
    for(i=1; i<n; i++)
    {
        last2=new nod;
        nou2->urm=last2;
        in>>last2->v;
        last2->urm=NULL;
        nou2=last2;
    }
}
int main()
{
    int i,j;
    in>>m>>n;
    citire();
    in.close();
    i=1;j=1;
    int s=0,e=-1;
    while(first1!=NULL)
    {
        nou2=first2;
        while(nou2!=NULL)
        {
            cout<<first1->v<<" "<<nou2->v<<"\n";
            if(first1->v==nou2->v)
                {do
                {
                    s++;
                    v[p]=first1->v;
                    p++;
                    e=s;
                }while(e<s);
                e=s;
                }
            nou2=nou2->urm;
            j++;
        }
        first1=first1->urm;
        i++;
    }
    out<<s<<"\n";
    for(i=0;i<p;i++)
        out<<v[i]<<" ";
    out.close();
    return 0;
}