Submission #1323290

#TimeUsernameProblemLanguageResultExecution timeMemory
1323290ttparin_JJOOII 2 (JOI20_ho_t2)C++20
100 / 100
7 ms4100 KiB
#include<bits/stdc++.h> using namespace std; vector<int> jj; vector<int> oo; vector<int> ii; int cojj[200010]; int cooo[200010]; int coii[200010]; int z; int main(){ int mini=INT_MAX; int n; cin>>n; int k; cin>>k; string s; cin>>s; if(s[0]=='J'){ cojj[0]=1; jj.push_back(0); } if(s[0]=='O'){ cooo[0]=1; oo.push_back(0); } if(s[0]=='I'){ ii.push_back(0); coii[0]=1; } for(int i=1;i<n;i++){ cojj[i]=cojj[i-1]; cooo[i]=cooo[i-1]; coii[i]=coii[i-1]; if(s[i]=='J'){ cojj[i]++; jj.push_back(i); } if(s[i]=='O'){ cooo[i]++; oo.push_back(i); } if(s[i]=='I'){ ii.push_back(i); coii[i]++; } } for(int i=1;i<n;i++){ if((s[i]=='O'&&cooo[n-1]-cooo[i]>=k-1)&&cojj[i]>=k){ z=oo[cooo[i]+k-2]; if(coii[n-1]-coii[z]>=k) mini=min(mini,ii[coii[z]+k-1]-jj[cojj[i]-k]+1-k*3); } } if(mini==INT_MAX){ cout<<"-1"; return 0; } cout<<mini; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...