제출 #207562

#제출 시각아이디문제언어결과실행 시간메모리
207562super_j6JJOOII 2 (JOI20_ho_t2)C++14
100 / 100
13 ms4988 KiB
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>
#include <vector>
using namespace std;
#define endl '\n'
#define pi pair<int, int>

const int maxn = 200000;
int n, k;
string s;
int a[maxn], dp[maxn][3];
vector<int> nx[3];

int main(){
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	
	cin >> n >> k;
	cin >> s;
	
	
	int ret = n;
	for(int i = 0; i < n; i++){
		a[i] = s[i] == 'J' ? 0 : s[i] == 'O' ? 1 : 2;
		nx[a[i]].push_back(i);
		for(int j = 0; j < 3; j++){
			int m = nx[j].size();
			dp[i][j] = (m >= k ? j ? dp[nx[j][m - k]][j - 1] : nx[j][m - k] : -n);
		}
		ret = min(ret, i - dp[i][2]);
	} 
	
	cout << (ret == n ? -1 : ret - 3 * k + 1) << endl;

	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...