Submission #764242

#TimeUsernameProblemLanguageResultExecution timeMemory
764242idkhandleHicCup (FXCUP4_hiccup)C++17
100 / 100
74 ms8296 KiB
#include "hiccup.h" #include<vector> #include<deque> using namespace std; bool f(string& S, int X){ deque<int>Q(S.begin(),S.end()); vector<int>V{-1}; bool z=0; while(!Q.empty()){ char q=Q.front(); Q.pop_front(); if(q=='H'){ z=0; V.emplace_back(0); }else if(q=='C'){ z=0; if(V.back()!=0)return false; V.back()=1; if(X==0){ V.pop_back(); z=1; } }else{ if(V.back()<1){ if(!z)return false; continue; } V.back()++; if(V.back()==X+1){ V.pop_back(); z=1; } } } if(V.size()>1)return false; return true; } int HicCup(std::string S) { int N = S.size(); int l=-1,r=N; while(l<r){ int X=(l+r+1)/2; if(f(S,X))l=X; else r=X-1; } return l; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...