#include <bits/stdc++.h>
//#pragma GCC optimize("Ofast,O3,unroll-loops")
//#pragma GCC target("avx2")
using namespace std;
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
#define len(v) (int)((v).size())
const int inf = 1e9;
inline void solve() {
int n, k;
cin >> n >> k;
vector<char> a(n);
for (int i = 0; i < n; ++i){
cin >> a[i];
}
int J = 0, O = 0, I = 0;
int cJ = 0, cO = 0, cI = 0;
int ans = inf;
for (int i = 0; i < n; ++i){
cI += (a[i] == 'I');
while (cI - (a[I] == 'I') >= k){
cI -= (a[I] == 'I');
cO += (a[I] == 'O');
++I;
}
while (cO - (a[O] == 'O') >= k){
cO -= (a[O] == 'O');
cJ += (a[O] == 'J');
++O;
}
while (cJ - (a[J] == 'J') >= k){
cJ -= (a[J] == 'J');
++J;
}
if (cJ >= k){
ans = min(ans, i + 1 - J - 3 * k);
}
}
if (ans == inf){
cout << "-1\n";
}
else{
cout << ans << '\n';
}
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t = 1;
// cin >> t;
while (t--) {
solve();
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |