#include <algorithm>
#include <iostream>
using namespace std;
const int N = 200000;
char cc[N + 1];
int qu[N], ppj[N], ppo[N], ppi[N];
int main() {
ios_base::sync_with_stdio(false), cin.tie(NULL);
int n, k; cin >> n >> k >> cc;
for (int cnt = 0, i = 0; i < n; i++) {
if (cc[i] == 'J')
qu[cnt++] = i;
ppj[i] = cnt >= k ? qu[cnt - k] : -1;
}
for (int cnt = 0, i = 0; i < n; i++) {
if (cc[i] == 'O')
qu[cnt++] = i;
ppo[i] = cnt >= k ? qu[cnt - k] : -1;
}
for (int cnt = 0, i = 0; i < n; i++) {
if (cc[i] == 'I')
qu[cnt++] = i;
ppi[i] = cnt >= k ? qu[cnt - k] : -1;
}
int ans = n;
for (int i = 0; i < n; i++) {
int p = ppi[i];
if (p == -1)
continue;
p = ppo[p];
if (p == -1)
continue;
p = ppj[p];
if (p == -1)
continue;
ans = min(ans, i - p + 1 - k * 3);
}
cout << (ans < n ? ans : -1) << '\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... |