#include #include #define max(x,y) ((x>y)?(x):(y)) int dp[81][81]; char s1[81],s2[81]; char out[1000][81],act[81]; int nsol,l1,l2; void backtrack(int i, int j, int pos) { if (s1[i] == s2[j]) { act[pos++] = s1[i]; if (pos=0; --i) for (j=l2-1; j>=0; --j) { if (s1[i] == s2[j]) dp[i][j] = dp[i+1][j+1]+1; else dp[i][j] = max(dp[i][j+1],dp[i+1][j]); } nsol = 0; backtrack(0,0,0); for (i=0; i