Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int la,lb;
- string a,b;
- int dp[1010][1010];
- int solve(int i,int j){
- if(i==0) return dp[i][j]=j;
- if(j==0) return dp[i][j]=i;
- if(dp[i][j]!=-1) return dp[i][j];
- if(a[i-1]==b[j-1]) return solve(i-1,j-1);
- dp[i][j]=1+min(solve(i-1,j-1),min(solve(i-1,j),solve(i,j-1)));
- return dp[i][j];
- }
- void fil(int a,int b){
- for(int i=0;i<=a;i++) for(int j=0;j<=b;j++) dp[i][j]=-1;;
- }
- int main()
- {
- cin>>a>>b;
- la=a.size();
- lb=b.size();
- fil(la,lb);
- int mx=max(la,lb);
- int cnt=solve(la,lb);
- if(mx%2==1) mx=mx/2+1;
- else mx/=2;
- printf("%d ",cnt);
- if(cnt<mx) printf("1");
- else printf("0");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement