Submission #781575

#TimeUsernameProblemLanguageResultExecution timeMemory
781575vjudge1JJOOII 2 (JOI20_ho_t2)C++17
1 / 100
2063 ms468 KiB
#include<bits/stdc++.h>
using namespace std;
#define lalala ios_base::sync_with_stdio(false);cin.tie(NULL);
#define endl "\n"
#define ll long long
#define pb push_back
#define N 200005
int arr[N];
string str;
int n,k;
ll int aw(int bas,int cur,int nerdeyim,int nerdeydim,int j,int owo,int uwu){
	//cout<<bas<<" "<<cur<<" "<<nerdeyim<<" "<<nerdeydim<<" "<<j<<" "<<owo<<" "<<uwu<<endl;
	if(nerdeyim>=n){
		if(j==k&&owo==k&&uwu==k)return cur;
		else return 1000000000;
	}
	ll int a,b=1000000000;
	a=aw(bas,cur,nerdeyim+1,nerdeydim,j,owo,uwu);
	if(str[nerdeyim]!='J'&&bas==0){
		return a;
	}
	if(bas==0){
		b=aw(1,cur,nerdeyim+1,nerdeyim,j+1,owo,uwu);
		return min(a,b);
	}
	if(bas==1){
		int deg1=j,deg2=owo,deg3=uwu;
		if(str[nerdeyim]=='J')deg1=j+1;
		if(str[nerdeyim]=='O'&&j==k)deg2=owo+1;
		if(str[nerdeyim]=='I'&&j==k&&owo==k)deg3=uwu+1;
		if(deg1!=j||deg2!=owo||deg3!=uwu)b=aw(bas,cur+(nerdeyim-nerdeydim-1),nerdeyim+1,nerdeyim,deg1,deg2,deg3);
	}
	return min(a,b);

}
int main(){
	cin>>n>>k;
	cin>>str;
	ll int a=aw(0,0,0,0,0,0,0);
	if(a>=1000000000)a=-1;
	cout<<a<<endl;

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...