Saleh127

CSES 1639 / Edit Distance

Apr 11th, 2022
1,001
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.84 KB | None | 0 0
  1. /***
  2.  created: 2022-04-11-23.54.11
  3. ***/
  4.  
  5. #include <bits/stdc++.h>
  6. using namespace std;
  7. #define ll long long
  8. #define test int tt; cin>>tt; for(int cs=1;cs<=tt;cs++)
  9. #define get_lost_idiot return 0
  10. #define nl '\n'
  11.  
  12. string a;
  13. string b;
  14.  
  15. ll dp[5005][5005],n,m;
  16.  
  17.  
  18. ll solve(ll i,ll j)
  19. {
  20.     if(dp[i][j]!=-1) return dp[i][j];
  21.  
  22.     if(i==n && j==m) return 0;
  23.     else if(i==n) return m-j;
  24.     else if(j==m) return n-i;
  25.  
  26.     ll ans;
  27.  
  28.     ans=min(1+solve(i+1,j),1+solve(i,j+1));
  29.  
  30.     if((a[i]!=b[j])) ans=min(ans,1+solve(i+1,j+1));
  31.     else ans=min(ans,solve(i+1,j+1));
  32.  
  33.     return dp[i][j]=ans;
  34.  
  35. }
  36.  
  37. int main()
  38. {
  39.     ios_base::sync_with_stdio(0);
  40.     cin.tie(0);
  41.     cout.tie(0);
  42.  
  43.  
  44.     cin>>a>>b;
  45.  
  46.     n=a.size();
  47.     m=b.size();
  48.  
  49.     memset(dp,-1,sizeof dp);
  50.  
  51.     cout<<solve(0,0)<<nl;
  52.  
  53.  
  54.     get_lost_idiot;
  55. }
  56.  
Advertisement
Add Comment
Please, Sign In to add comment