Submission #1253432

#TimeUsernameProblemLanguageResultExecution timeMemory
1253432LM1JJOOII 2 (JOI20_ho_t2)C++20
13 / 100
2092 ms3032 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define ff first #define ss second #define pb push_back #define vi vector<int> #define fr(i,ii,iii) for(int i=ii;i<iii;i++) const int N=2e5+5; int n,k; int nxt[N][3]; string a; int main(){ cin>>n>>k>>a; int ls[3]={-1,-1,-1}; for(int i=a.size()-1;i>=0;i--){ if(a[i]=='J')ls[0]=i; if(a[i]=='O')ls[1]=i; if(a[i]=='I')ls[2]=i; fr(j,0,3)nxt[i][j]=ls[j]; } fr(j,0,3)nxt[a.size()][j]=-1; int ans=1e6; fr(i,0,a.size()){ int i1=i-1; fr(j,0,k){ i1=nxt[i1+1][0]; if(i1==-1)goto end; } int i2=i1; fr(j,0,k){ i2=nxt[i2+1][1]; if(i2==-1)goto end; } int i3=i2; fr(j,0,k){ i3=nxt[i3+1][2]; if(i3==-1)goto end; } int ans1=i3-i+1-3*k; ans=min(ans,ans1); } end:; cout<<(ans==1e6?-1:ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...