Submission #1279001

#TimeUsernameProblemLanguageResultExecution timeMemory
1279001IBoryJJOOII 2 (JOI20_ho_t2)C++20
100 / 100
18 ms2468 KiB
#include <bits/stdc++.h>
using namespace std;

int N, K;
map<char, vector<int>> P;

int Go(char i, int cur) {
	int pos = lower_bound(P[i].begin(), P[i].end(), cur) - P[i].begin();
	return (P[i].size() < pos + K ? 1e9 : P[i][pos + K - 1] + 1);
}

int main() {
	string S, JOI = "JOI";
	cin >> N >> K >> S;
	for (int i = 0; i < N; ++i) P[S[i]].push_back(i);

	int ans = 1e9;
	for (int n : P['J']) {
		int t = n;
		for (char c : JOI) t = Go(c, t);
		ans = min(ans, t - n - 3 * K);
	}

	cout << (N < ans ? -1 : ans);
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...