# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1016096 | 2024-07-07T11:41:36 Z | vjudge1 | Bajka (COCI20_bajka) | C++17 | 65 ms | 792 KB |
#include <bits/stdc++.h> using namespace std; const int inf = 1e6; 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]=inf*(j>0); 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>=inf) return cout<<-1<<endl, 0; cout<<ans-1<<endl; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 348 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 604 KB | Output is correct |
2 | Correct | 12 ms | 792 KB | Output is correct |
3 | Correct | 5 ms | 604 KB | Output is correct |
4 | Correct | 6 ms | 748 KB | Output is correct |
5 | Correct | 1 ms | 348 KB | Output is correct |
6 | Correct | 1 ms | 348 KB | Output is correct |
7 | Correct | 12 ms | 604 KB | Output is correct |
8 | Correct | 38 ms | 604 KB | Output is correct |
9 | Correct | 65 ms | 768 KB | Output is correct |
10 | Correct | 1 ms | 348 KB | Output is correct |
11 | Correct | 10 ms | 604 KB | Output is correct |