Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <vector>
- #include <algorithm>
- using namespace std;
- int main() {
- ifstream fin("input.txt");
- ofstream fout("output.txt");
- string strA, strB;
- fin >> strA >> strB;
- int nA = strA.size(), nB = strB.size();
- strA = " " + strA; strB = " " + strB;
- vector<vector<int>> dp(nA+1, vector<int>(nB+1));
- for (int i = 0; i <= nA; i++) dp[i][0] = i;
- for (int i = 0; i <= nB; i++) dp[0][i] = i;
- for (int curA = 1; curA <= nA; curA++)
- for (int curB = 1; curB <= nB; curB++) {
- if (strA[curA] == strB[curB])
- dp[curA][curB] = dp[curA - 1][curB - 1];
- else
- dp[curA][curB] = min(dp[curA - 1][curB - 1], min(dp[curA][curB - 1], dp[curA - 1][curB])) + 1;
- }
- fout << dp[nA][nB] << endl;
- fin.close();
- fout.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment