#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<pair<int, int>, null_type,less<pair<int, int>>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
#define MOD 1000000007
#define MAXN 2e5
#define SIZE 448
#define pb push_back
using namespace std;
ll power(ll a, ll b){
if (b == 0) return 1;
ll res = power(a, b / 2);
if (b % 2 == 1) return res * res % MOD * a % MOD;
return res * res % MOD;
// if (b % 2 == 1) return res * res * a;
// return res * res;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, k;
cin >> n >> k;
string s;
cin >> s;
int ans = -1;
for (int i = 0; i < n; i++){
if (s[i] == 'J'){
int curr = 0;
char curChar = 'J';
int last = -1;
for (int j = i; j < n; j++){
if (s[j] == curChar){
curr++;
if (curr == k){
if (curChar == 'J') curChar = 'O';
else if (curChar == 'O') curChar = 'I';
else{
last = j;
break;
}
curr = 0;
}
}
}
if (last != -1){
if (ans == -1){
ans = last - i + 1 - k * 3;
}
else ans = min(ans, last - i + 1 - k * 3);
}
}
}
cout << ans << "\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... |