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);}