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";
- int l_ar, l_cmp;
- vector <vector<int>> dp(100010, vector<int>(10,0));
- int f(int i, int j){
- if(j == l_cmp) return 0;
- if(i == l_ar) return INF;
- if(dp[i][j]) return dp[i][j];
- if(ar[i] == cmp[j])
- return dp[i][j] = min( f(i+1,j+1), f(i+1,j)+1);
- return dp[i][j] = f(i+1,j)+1;
- }
- int main(){
- scanf("%s",ar);
- l_ar = strlen(ar);
- l_cmp = strlen(cmp);
- f(0,0);
- 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;
- }
- /*
- 7 + dp[i][j]
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement