rendered paste body#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int max(int a, int b)
{
if (a > b)
return(a);
else
return(b);
}
/*int backtrack(int table[][l2 + 1], int argv[1][l1], int argv[2][l2], )
{
}
*/
int main(int argc, char * argv[])
{
if (argc != 3)
exit(EXIT_FAILURE);
int i, j, l1, l2;
l1 = strlen(argv[1]);
l2 = strlen(argv[2]);
int table[l1 + 1][l2 + 1];
for (i = 0; i <= l1; i++) {
table[i][0] = 0;
}
for (j = 0; j <= l2; j++) {
table[0][j] = 0;
}
for (i = 0; i < l1; i++) {
for (j = 0; j < l2; j++) {
if (argv[1][i] == argv[2][j]) {
table[i+1][j+1] = table[i][j] + 1;
} else {
table[i+1][j+1] = max(table[i][j+1],table[i+1][j]);
}
}
} //to gemisma tou pinaka
/* i = l1 + 1;
j = l2 + 1;
while (i > 0 && j > 0)
{
if (argv[1][i] == argv[2][j]) {
printf("%c ", argv[1][i]);
i--; j--;
} else if (table)
}
*/
printf(" %c ", argv[2][0]);
for (i=1; i <= l2; i++)
printf("%c ", argv[2][i]);
printf("\n");
printf(" %d ", table[0][0]);
for (j=1; j<=l2; j++) {
printf("%d ", table[0][j]);
}
printf("\n");
for (i=1; i<=l1; i++) {
printf("%c ", argv[1][i-1]);
for (j=0; j<=l2; j++) {
printf("%d ", table[i][j]);
}
printf("\n");
}
printf("\n");
printf("Longest Common Subsequence: %d\n", table[l1][l2]);
return(0);
}