Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int INF = 1e9;
- char ar[100010], cmp[] = "codecube";
- vector <vector<int>> dp(100010, vector<int>(10,0));
- int main(){
- int n;
- scanf("%d",&n);
- scanf("%s",ar);
- int l_ar = strlen(ar), l_cmp = strlen(cmp);
- for(int j = 0; j < l_cmp; j++) dp[l_ar][j] = INF;
- for(int i = 0; i < l_ar; i++) dp[i][l_cmp] = 0;
- for(int i = l_ar-1; i >= 0; i--){
- for(int j = l_cmp-1; j >= 0; j--){
- if(ar[i] == cmp[j])
- dp[i][j] = min( dp[i+1][j+1], dp[i+1][j] + 1);
- else
- dp[i][j] = dp[i+1][j] + 1;
- }
- }
- int mn = INF, idx = -1;
- for(int i=0;i<l_ar;i++){
- if(dp[i][0] < mn){
- mn = dp[i][0];
- idx = i;
- }
- }
- if(idx == -1) printf("-1");
- else printf("%d %d",idx+1,idx+8+mn);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement