3
long long int solve(int i, int j, string &s, string &t, vector<vector<int>> &dp) {6
for (int k = 0; k < j + 1; k++) {14
for (int k = 0; k < i + 1; k++) {20
if (dp[i][j] != -1) return dp[i][j];22
return dp[i][j] = solve(i - 1, j - 1, s, t, dp);24
long long x = int(s[i]) + solve(i - 1, j, s, t, dp);25
long long y = int(t[j]) + solve(i, j - 1, s, t, dp);26
return dp[i][j] = min(x, y);29
long long int minimumDeleteSum(string s1, string s2) {32
vector<vector<int>> dp(n + 1, vector<int>(m + 1, -1));33
return solve(n - 1, m - 1, s1, s2, dp);