Cod sursa(job #485524)

Utilizator PopaStefanPopa Stefan PopaStefan Data 18 septembrie 2010 17:15:29
Problema Cel mai lung subsir comun Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
#define nmax 1025

using namespace std;

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

int M[nmax][nmax],a[nmax],b[nmax],n,m;

void citire()
{fin>>m>>n;
int i;
for(i=1;i<=m;i++)
  fin>>a[i];
for(i=1;i<=n;i++)
  fin>>b[i];
}

int maxim(int x,int y)
{if(x>y) return x;
return y;
}

void solve()
{int i,j;
for(i=1;i<=n;i++)
 for(j=1;j<=m;j++)
   if(a[j]==b[i])
      M[i][j]=M[i-1][j-1]+1;
    else
      M[i][j]=max(M[i-1][j],M[i][j-1]);
for(i=1;i<=n;i++)
 {for(j=1;j<=m;j++)
    fout<<M[i][j]<<" ";
  fout<<'\n';
 }
fout<<M[n][m]<<'\n';
}

int main()
{citire();
solve();
return 0;
}