This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define inf 1000000000
int n,m,ans=inf,k;
int cev;
string s;
vector<int> v[5];
int main(void){
fio();
cin>>n>>k>>s;
for(int i=0;i<n;i++){
if(s[i]=='J')v[0].pb(i);
if(s[i]=='O')v[1].pb(i);
if(s[i]=='I')v[2].pb(i);
}
int si=v[0].size();
int si1=v[1].size();
int si2=v[2].size();
for(int i=0;i<(int)v[0].size();i++){
if(i+k-1>=si)break;
int at=v[0][i+k-1];
int yes=upper_bound(v[1].begin(),v[1].end(),at)-v[1].begin();
if(yes+k-1>=si1)break;
at=v[1][yes+k-1];
yes=upper_bound(v[2].begin(),v[2].end(),at)-v[2].begin();
if(yes+k-1>=si2)break;
at=v[2][yes+k-1];
ans=min(ans,at-v[0][i]+1-3*k);
}
if(ans==inf)ans=-1;
cout<<ans<<endl;
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... |