Submission #1144926

#TimeUsernameProblemLanguageResultExecution timeMemory
1144926ezzzayJJOOII 2 (JOI20_ho_t2)C++20
13 / 100
2095 ms584 KiB
#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
const int N=3e5+5;
int sf[N][3];
int ps[N][3];
int cnt[3];
int dp[N];
signed main(){
    int n,k;
    cin>>n>>k;
    vector<char>s(n+2),t(n+2);
    map<char,int> mp;
    for(int i=1;i<=n;i++){
        cin>>s[i];
    }
    mp['J']=0;
    mp['O']=1;
    mp['I']=2;
    for(int i=0;i<3*k;i++){
        if(i/k==0)t[i+1]='J';
        if(i/k==1)t[i+1]='O';
        if(i/k==2)t[i+1]='I';
    }
    int ans=1e9;
    for(int i=1;i<=n;i++){
    	int l=i;
    	for(int j=1;j<=3*k;j++){
    		while(s[l]!=t[j] and l<=n+1)l++;
    		l++;
		}
		l--;
		if(l<=n){
			ans=min(ans, l-i+1-3*k);
		}
	}
	if(ans==1e9){
		cout<<"-1";
		return 0;
	}
	cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...