#include <bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
#define all(x) x.begin(), x.end()
using namespace std;
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].push_back(i);
if (s[i] == 'O')
v[1].push_back(i);
if (s[i] == 'I')
v[2].push_back(i);
}
ll ans = 1e9;
for (ll i = k - 1; i < v[0].size(); i++)
{
ll l = v[0][i - k + 1];
ll y = upper_bound(all(v[1]), v[0][i]) - v[1].begin();
if (y + k - 1 >= v[1].size())
{
continue;
}
y = v[1][y + k - 1];
y = upper_bound(all(v[2]), y) - v[2].begin();
if (y + k - 1 >= v[2].size())
{
continue;
}
y = v[2][y + k - 1];
ans = min(ans, (n - 3 * k) - (l + (n - y - 1)));
}
cout << ((ans == 1e9) ? -1 : ans);
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... |