제출 #877128

#제출 시각아이디문제언어결과실행 시간메모리
877128Marco_EscandonJJOOII 2 (JOI20_ho_t2)C++11
100 / 100
9 ms3412 KiB
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int n,k;
string s;

vector<int> f(char c){
	vector<int> a(n+2);
	int I=0,t=0;
	for(int i=0;i<n;i++){
		if(i&&s[i-1]==c) t--;
		while(I<n&&t<k){
			if(s[I]==c) t++;
			I++;
		}
		a[i]=(t==k?I:n+1);
	}
	a[n]=a[n+1]=n+1;
	return a;
}

int main(){
	cin>>n>>k>>s;
	vector<int> a=f('J'),b=f('O'),c=f('I');
	int res=n;
	for(int i=0;i<n;i++){
		int x=c[b[a[i]]];
		if(x<=n) res=min(res,x-i-3*k);
	}
	cout<<(res==n?-1:res)<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...