#include<stdio.h>
#include<stdlib.h>
int max(int a,int b){return (a>b)?a:b;}
char *x, *y;
int lcs(int i,int j)
{
if(i==0||j==0)return 0;
else if(i>0&&j>0&&x[i]==y[j]) return lcs(i-1,j-1)+1;
else if(i>0&&j>0&&x[i]!=y[j]) return max(lcs(i-1,j),lcs(i,j-1));
}
int main()
{int n=10,m=5;
x=(char *)malloc(n*sizeof(char ));
y=(char *)malloc(m*sizeof(char ));
gets(x);
gets(y);
//sizeof longest common subsequence among first n letters of x and first m letters of y
printf("%d",lcs(n,m));
return 0;
}
#include<stdlib.h>
int max(int a,int b){return (a>b)?a:b;}
char *x, *y;
int lcs(int i,int j)
{
if(i==0||j==0)return 0;
else if(i>0&&j>0&&x[i]==y[j]) return lcs(i-1,j-1)+1;
else if(i>0&&j>0&&x[i]!=y[j]) return max(lcs(i-1,j),lcs(i,j-1));
}
int main()
{int n=10,m=5;
x=(char *)malloc(n*sizeof(char ));
y=(char *)malloc(m*sizeof(char ));
gets(x);
gets(y);
//sizeof longest common subsequence among first n letters of x and first m letters of y
printf("%d",lcs(n,m));
return 0;
}