Raslboyy

1791

Sep 10th, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.81 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <vector>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9. int main() {
  10.     ifstream fin("input.txt");
  11.     ofstream fout("output.txt");
  12.  
  13.     string strA, strB;
  14.     fin >> strA >> strB;
  15.     int nA = strA.size(), nB = strB.size();
  16.     strA = " " + strA; strB = " " + strB;
  17.     vector<vector<int>> dp(nA+1, vector<int>(nB+1));
  18.     for (int i = 0; i <= nA; i++) dp[i][0] = i;
  19.     for (int i = 0; i <= nB; i++) dp[0][i] = i;
  20.     for (int curA = 1; curA <= nA; curA++)
  21.         for (int curB = 1; curB <= nB; curB++) {
  22.             if (strA[curA] == strB[curB])
  23.                 dp[curA][curB] = dp[curA - 1][curB - 1];
  24.             else
  25.                 dp[curA][curB] = min(dp[curA - 1][curB - 1], min(dp[curA][curB - 1], dp[curA - 1][curB])) + 1;
  26.         }
  27.     fout << dp[nA][nB] << endl;
  28.  
  29.     fin.close();
  30.     fout.close();
  31.     return 0;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment