# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1016087 | 2024-07-07T11:35:31 Z | vjudge1 | Bajka (COCI20_bajka) | C++17 | 78 ms | 800 KB |
#include <bits/stdc++.h> using namespace std; int main() { int n,m; cin>>n>>m; string s,t; cin>>s>>t; int dp[n][m+1]; for (int i=0;i<n;i++) for (int j=0;j<=m;j++) dp[i][j]=n*m*j; vector<int> ind[256]; for (int i=0;i<n;i++) ind[s[i]].push_back(i); for (int j=1;j<=m;j++) for (int i=0;i<n;i++) { for (int k:ind[s[i]]) { if (k && s[k-1]==t[m-j]) dp[i][j]=min(dp[i][j],dp[k-1][j-1]+1+abs(i-k)); if (k<n-1 && s[k+1]==t[m-j]) dp[i][j]=min(dp[i][j],dp[k+1][j-1]+1+abs(i-k)); } } int ans=dp[0][m]; for (int i=1;i<n;i++) ans=min(ans,dp[i][m]); if (ans>=n*m) return cout<<-1<<endl, 0; cout<<ans-1<<endl; return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 344 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 604 KB | Output is correct |
2 | Correct | 14 ms | 616 KB | Output is correct |
3 | Correct | 5 ms | 604 KB | Output is correct |
4 | Correct | 7 ms | 696 KB | Output is correct |
5 | Correct | 1 ms | 348 KB | Output is correct |
6 | Correct | 1 ms | 348 KB | Output is correct |
7 | Correct | 14 ms | 800 KB | Output is correct |
8 | Correct | 34 ms | 604 KB | Output is correct |
9 | Correct | 78 ms | 604 KB | Output is correct |
10 | Correct | 0 ms | 344 KB | Output is correct |
11 | Correct | 13 ms | 796 KB | Output is correct |