#include<bits/stdc++.h>
using namespace std;
vector<int> jj;
vector<int> oo;
vector<int> ii;
int cojj[200010];
int cooo[200010];
int coii[200010];
int z;
int main(){
int mini=INT_MAX;
int n;
cin>>n;
int k;
cin>>k;
string s;
cin>>s;
if(s[0]=='J'){
cojj[0]=1;
jj.push_back(0);
}
if(s[0]=='O'){
cooo[0]=1;
oo.push_back(0);
}
if(s[0]=='I'){
ii.push_back(0);
coii[0]=1;
}
for(int i=1;i<n;i++){
cojj[i]=cojj[i-1];
cooo[i]=cooo[i-1];
coii[i]=coii[i-1];
if(s[i]=='J'){
cojj[i]++;
jj.push_back(i);
}
if(s[i]=='O'){
cooo[i]++;
oo.push_back(i);
}
if(s[i]=='I'){
ii.push_back(i);
coii[i]++;
}
}
for(int i=1;i<n;i++){
if((s[i]=='O'&&cooo[n-1]-cooo[i]>=k-1)&&cojj[i]>=k){
z=oo[cooo[i]+k-2];
if(coii[n-1]-coii[z]>=k)
mini=min(mini,ii[coii[z]+k-1]-jj[cojj[i]-k]+1-k*3);
}
}
if(mini==INT_MAX){
cout<<"-1";
return 0;
}
cout<<mini;
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |