#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N, K;
cin >> N >> K;
vector<vector<int>> nxt(N, vector<int>(3, -1));
string s;
cin >> s;
vector<char> c = {'J', 'O', 'I'};
for (int it = 0; it < 3; ++it) {
char need = c[it];
queue<int> q;
for (int i = 0; i < N; ++i) {
if (need == s[i]) {
q.push(i);
}
while (q.size() == K) {
nxt[q.front()][it] = i;
q.pop();
}
}
}
for (int it = 0; it < 3; ++it) {
for (int j = N - 2; j >= 0; --j) {
if (nxt[j][it] == -1) nxt[j][it] = nxt[j + 1][it];
}
}
int res = -1;
for (int i = 0; i < N; ++i) {
int j = i;
for (int it = 0; j != -1 && it < 3; ++it) {
j = nxt[j][it];
}
if (j == -1) continue;
int op = j - i + 1 - 3 * K;
if (res == -1 || op < res) {
res = op;
}
}
cout << res << "\n";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |