模板
#include <stdio.h>
#include<string.h>
#include <iostream>
using namespace std;
int DP[1000][1000];
char
s1[1000],s2[1000];
int main()
{
while (scanf("%s%s",s1,s2) != EOF ){
memset(DP,0,sizeof DP);
int len1 = strlen(s1);
int len2 = strlen(s2);
for (int i = 0;i<len1;i++){
for (int j = 0;j<len2;j++){
if (s1[i] == s2[j])
DP[i+1][j+1] = DP[i][j] + 1;
else
DP[i+1][j+1] = max(DP[i][j+1],DP[i+1][j]);
}
}
printf("%d\n",DP[len1][len2]);
}
return 0;
}