#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ff first
#define ss second
#define all(x) (x).begin(), (x).end()
#define pb push_back
#define ertunt return
int main(){
ll n,k;
cin >> n >> k;
string s;
cin >> s;
vector<ll> v[3];
for(ll 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);
}
ll ans = 1e18;
for(ll i = k - 1; i < v[0].size(); i++){
ll cur = (v[0][i] - v[0][i-k+1]) - k;
ll y = lower_bound(all(v[1]),v[0][i]) - v[1].begin();
if(y+k-1 >= v[1].size())break;
cur+=v[1][y] - v[0][i];
cur+=(v[1][y+k-1] - v[1][y]) - k;
ll x = lower_bound(all(v[2]),v[1][y+k-1]) - v[2].begin();
if(x+k-1 >= v[2].size()) break;
cur+=v[2][x] - v[1][y+k-1];
cur+= (v[2][x+k-1] - v[2][x]) - k;
ans = min(cur,ans);
}
if(ans == 1e18)cout << -1;
else cout << ans+1;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |