Advertisement
Josif_tepe

Untitled

Nov 17th, 2021
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <algorithm>
  4. #include <queue>
  5. #include <vector>
  6. using namespace  std;
  7. typedef long long ll;
  8. int dp[1005][1005];
  9. int main() {
  10.     string a, b;
  11.     cin >> a >> b;
  12.     for(int i = 0; i <= a.size(); i++) {
  13.         for(int j = 0; j <= b.size(); j++) {
  14.             dp[i][j] = -2e9;
  15.         }
  16.     }
  17.     dp[0][0] = 0;
  18.     int result = 0;
  19.     for(int i = 0; i < a.size(); i++) {
  20.         for(int j = 0; j < b.size(); j++) {
  21.             if(a[i] == b[j]) {
  22.                 dp[i + 1][j + 1] = max(dp[i + 1][j + 1], dp[i][j] + 1);
  23.             }
  24.             dp[i + 1][j] = max(dp[i + 1][j], dp[i][j]);
  25.             dp[i][j + 1] = max(dp[i][j + 1], dp[i][j]);
  26.         }
  27.        
  28.     }
  29.     for(int i = 0; i <= a.size(); i++) {
  30.         for(int j = 0; j <= b.size(); j++) {
  31.             result = max(result, dp[i][j]);
  32.         }
  33.        
  34.     }
  35.     cout << result << endl;
  36.     return 0;
  37. }
  38. /*
  39.  */
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement