rt,WA on #1 and #6
#include <bits/stdc++.h>
using namespace std;
string x, y;
long long dp[3][11451];
int main() {
cin >> x >> y;
int len1 = x.size(), len2 = y.size();
x += ' ';
y += ' ';
for (int i = 1; i <= len1; i++) {
for (int j = 1; j <= len2; j++) {
if (x[i] == y[j]) dp[i % 2][j] = dp[(i - 1) % 2][j - 1] + 1;
else dp[i % 2][j] = max(dp[(i - 1) % 2][j], dp[i % 2][j - 1]);
}
} cout << dp[len1 % 2][len2];
return 0;
}