# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1016094 | 2024-07-07T11:38:55 Z | vjudge1 | Bajka (COCI20_bajka) | C++17 | 64 ms | 796 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*2; 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*2) return cout<<-1<<endl, 0; cout<<ans-1<<endl; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 344 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 792 KB | Output is correct |
2 | Correct | 13 ms | 788 KB | Output is correct |
3 | Correct | 5 ms | 604 KB | Output is correct |
4 | Correct | 7 ms | 600 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 1 ms | 348 KB | Output is correct |
7 | Correct | 13 ms | 792 KB | Output is correct |
8 | Correct | 33 ms | 788 KB | Output is correct |
9 | Correct | 64 ms | 600 KB | Output is correct |
10 | Correct | 1 ms | 348 KB | Output is correct |
11 | Correct | 11 ms | 796 KB | Output is correct |