#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n,k;
cin>>n>>k;
string s;
cin>>s;
vi p,q,r;
for(int i=0;i<n;i++){
if(s[i]=='J')p.push_back(i);
else if(s[i]=='O')q.push_back(i);
else if(s[i]=='I')r.push_back(i);
}
int ans=INT_MAX;
for(int a=0;a+ k <= (int)p.size();a++){
int b=p[a+k-1];
auto it1=lower_bound(q.begin(),q.end(),b+1);
if(it1==q.end())break;
int c=it1 - q.begin();
if(c+ k-1 >= (int)q.size())continue;
int d=q[c+k-1];
auto it2=lower_bound(r.begin(),r.end(),d+1);
if(it2==r.end())continue;
int e=it2 - r.begin();
if(e+ k-1 >= (int)r.size())continue;
int f=r[e+k-1];
int cost = (f - p[a] + 1) - 3*k;
ans=min(ans,cost);
}
if(ans==INT_MAX)cout<<-1<<"\n";
else cout<<ans<<"\n";
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... |