Submission #151620

#TimeUsernameProblemLanguageResultExecution timeMemory
151620thebesHicCup (FXCUP4_hiccup)C++17
24 / 100
23 ms3328 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pii; typedef vector<int> vi; const int MN = 1e6+6; int lo, hi, i, f, g; stack<int> st; stack<char> ch; int HicCup(string s){ lo = 0, hi = s.size(); while(lo<hi){ int m = (lo+hi)/2; f = 0; g = 1; while(st.size()) st.pop(); while(ch.size()) ch.pop(); for(i=0;i<s.size();i++){ if(s[i]=='H'){ st.push(0); ch.push('H'); } else if(s[i]=='C'){ if(ch.empty()||ch.top()!='H'){ g = 0; break; } ch.pop(); ch.push('C'); if(m==0){ ch.pop(); st.pop(); f = 1; } } else if(s[i]=='!'){ if(ch.empty()&&f) continue; else if(ch.empty()){g=0; break;} if(ch.top()=='H'&&!f){g=0; break;} else if(ch.top()=='H'&&f) continue; ch.pop(); ch.push('!'); st.top()++; if(st.top()==m){ f = 1; st.pop(); ch.pop(); } } } if(!g||ch.size()) hi=m; else lo=m+1; } return lo-1; }

Compilation message (stderr)

hiccup.cpp: In function 'int HicCup(std::__cxx11::string)':
hiccup.cpp:20:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(i=0;i<s.size();i++){
                 ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...