Submission #1271162

#TimeUsernameProblemLanguageResultExecution timeMemory
1271162luuthanhdatbienhoak66Bajka (COCI20_bajka)C++20
0 / 70
1 ms324 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<ll,ll> const ll N=1000005; const ll inf=4e18; ll n,m; string s,str; vector<ll>now; vector<ll>Prev; int main() { //freopen(".inp","r",stdin); //freopen(".out","w",stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>m>>s>>str; s=' '+s; str=' '+str; now.assign(n+5,inf); Prev.assign(n+5,inf); for(ll i=1; i<=n; i++) { if(s[i]==str[1]) { Prev[i]=0; } } ll res=inf; for(ll id=2; id<=m; id++) { now.assign(n+5,inf); for(ll i=1; i<=n; i++) { if(s[i]!=str[id]) continue; if((i!=1&&s[i-1]==str[id-1]) || (i!=n&&s[i+1]==str[id-1])) { for(ll j=1; j<=n; j++) { if(s[j]!=str[id-1] || i==j) continue; now[i]=min(now[i],Prev[j]+abs(i-j)); } } if(id==m) res=min(res,now[i]); } swap(now,Prev); } cout<<(res==inf?-1:res); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...