Cod sursa(job #1349484)

Utilizator HothazieHothazie Vlad Hothazie Data 20 februarie 2015 11:36:47
Problema Cel mai lung subsir comun Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("euclid2.in");
ofstream g("euclid2.out");
int n,m,a[1025],b[1025],A[1025][1025],U[1025][1025],i,j,nr,v[1025],x,y;
int main()
{

    f>>n>>m;
    for(i=1;i<=n;i++) f>>a[i];
    for(j=1;j<=m;j++) f>>b[j];


    for(i=n;i>=1;i--)
        for(j=m;j>=1;j--)
        {
        if(a[i]==b[j])A[i][j]=1+A[i+1][j+1],U[i][j]=1;
        else

        {
            if(A[i][j+1]>=A[i+1][j])A[i][j]=A[i][j+1],U[i][j]=2;
            else A[i][j]=A[i+1][j],U[i][j]=3;
        }
        }

    for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
        if(U[i][j]==1)
        {

            nr++,v[nr]=a[i];
        }
    g<<A[1][1]<<endl;

    for(i=1;i<=A[1][1];i++)
        g<<v[i]<<' ';
        g<<endl;
 f.close();
 g.close();
    return 0;
}