Submission #1268154

#TimeUsernameProblemLanguageResultExecution timeMemory
1268154drakozsJJOOII 2 (JOI20_ho_t2)C++20
13 / 100
2092 ms724 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...