Submission #1178629

#TimeUsernameProblemLanguageResultExecution timeMemory
1178629prideliqueeeBajka (COCI20_bajka)C++20
70 / 70
14 ms1096 KiB
#include<bits/stdc++.h> using namespace std; #define int long long signed main() { int n,m; cin>>n>>m; string s1,s2; cin>>s1>>s2; swap(s1,s2); int dp[s1.size()][s2.size()]; for(int i=0;i<s1.size();i++) for(int j=0;j<s2.size();j++) dp[i][j]=1e9; int ans=LLONG_MAX; for(int i=0;i<s2.size();i++) { if(s2[i]==s1[0]) { dp[0][i]=0; if(s1.size()==1) ans=0; } } if(ans==0) { cout<<0; return 0; } for(int i=1;i<s1.size();i++) { ans=LLONG_MAX; for(int j=0;j<s2.size();j++) { if(s2[j]==s1[i]) { if((j>0&&s2[j-1]==s1[i-1])||(j<s2.size()-1&&s2[j+1]==s1[i-1])) { for(int k=0;k<s2.size();k++) { if(dp[i-1][k]<1e9) { if(j>0&&s2[j-1]==s1[i-1]) { dp[i][j]=min(dp[i][j],dp[i-1][k]+1+abs(k-(j-1))); } if(j<s2.size()-1&&s2[j+1]==s1[i-1]) { dp[i][j]=min(dp[i][j],dp[i-1][k]+1+abs(k-(j+1))); } } } } } ans=min(ans,dp[i][j]); //cout<<dp[i][j]<<" "; } //cout<<endl; } if(ans<1e9) cout<<ans; else cout<<-1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...