Pagini recente » Cod sursa (job #2439716) | Cod sursa (job #2260075) | Cod sursa (job #347076) | Cod sursa (job #1615503) | Cod sursa (job #2693887)
#include<bits/stdc++.h>
using namespace std;
ifstream fi("cmlsc.in");
ofstream fo("cmlsc.out");
int N,M,i,A[1030],B[1030];
int LCS( int *X, int *Y, int m, int n )
{
int L[m + 1][n + 1];
int i, j;
for (i = 0; i <= m; i++)
for (j = 0; j <= n; j++)
{
if (i == 0 || j == 0) L[i][j] = 0;
else if (X[i - 1] == Y[j - 1]) L[i][j] = L[i - 1][j - 1] + 1;
else L[i][j] = max(L[i - 1][j], L[i][j - 1]);
}
/*cout << " #";
for(i=0; i<m; i++) cout << " " << Y[i]; cout << '\n';
for (i = 0; i < m; i++)
{
cout << " " << X[i];
for (j = 0; j < n; j++)
cout << " " << L[i][j];
cout << '\n';
}*/
return L[m][n];
}
// Driver Code
int main()
{
fi >> N >> M;
for(i=0; i<N; i++) fi >> A[i];
for(i=0; i<M; i++) fi >> B[i];
cout << "Length of LCS is " << LCS( A, B, M, N );
return 0;
}