Submission #1138322

#TimeUsernameProblemLanguageResultExecution timeMemory
1138322_rain_Bajka (COCI20_bajka)C++20
70 / 70
26 ms584 KiB
// Source: https://usaco.guide/general/io #include<bits/stdc++.h> using namespace std; typedef long long LL; #define FOR(i,a,b) for(int i=(a);i<=(b);++i) #define FORD(i,a,b) for(int i=(b);i>=(a);--i) const int N=302; int dp[N+2][N+2]; int n,m; string s1,s2; int32_t main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; cin>>s1>>s2; s1='#'+s1,s2='#'+s2; memset(dp,0x3f,sizeof dp); FOR(i,1,n) if (s1[i]==s2[1]) dp[1][i]=0; int INF=dp[0][0]; FOR(i,2,m){ FOR(j1,1,n){ if (s1[j1]==s2[i]) dp[i][j1]=min(dp[i-1][j1-1]+1,dp[i][j1]); if (s1[j1]==s2[i]) dp[i][j1]=min(dp[i-1][j1+1]+1,dp[i][j1]); } FOR(j1,1,n) FOR(j2,1,n){ if (s1[j1]==s1[j2]) dp[i][j2]=min(dp[i][j2],dp[i][j1]+abs(j1-j2)); } } int ans=INF; FOR(i,1,n) ans=min(ans,dp[m][i]); cout<<(ans==INF?-1:ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...