#include <bits/stdc++.h>
using namespace std;
#define ll long long
void znajdz(string &s, int k, char c, vector<int> &t) {
int b = 0, e = 0, l = (s[0]==c);
while (e < (int)s.size()) {
if (l < k) {
e++;
l += (s[e]==c);
}
else {
t[b] = e;
l -= (s[b]==c);
b++;
}
}
return;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, k;
string s;
cin >> n >> k >> s;
vector<int> tj (n+10, n), to (n+10, n), ti (n+10, n);
znajdz(s, k, 'J', tj);
znajdz(s, k, 'O', to);
znajdz(s, k, 'I', ti);
int sc = 1e9;
for (int i = 0; i < n; i++){
int x = i;
x = tj[x]+1;
x = to[x]+1;
x = ti[x];
if (x < n) {
sc = min(sc, n-k*3-i-(n-x-1));
}
}
if (sc == (int)1e9) {
cout << -1 << '\n';
}
else {
cout << sc << '\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... |