Submission #149639

#TimeUsernameProblemLanguageResultExecution timeMemory
149639Showing Hands (#200)HicCup (FXCUP4_hiccup)C++17
24 / 100
23 ms4352 KiB
#include "hiccup.h" #include<bits/stdc++.h> #define sz(x) ((int)x.size()) #define pb push_back #define ppb pop_back #define ii pair<int,int> #define st first #define nd second #define ll long long #define N 200005 #define inf 1000000005 #define MOD 1000000007 using namespace std; int n; string s; bool ok(int k) { vector<int> gr; bool pr=0; for(int i=0;i<n;i++) { if(s[i]=='H') { gr.pb(-1); } else if(s[i]=='C') { if(!sz(gr) || gr.back()!=-1) return 0; gr.back()=k; if(gr.back()==0) gr.ppb(); pr=1; } else { if(sz(gr) && gr.back()==-1) return 0; if(!sz(gr) && !pr) return 0; if(sz(gr)) { gr.back()--; if(gr.back()==0) gr.ppb(); } } } return sz(gr)==0; } int HicCup(std::string s) { n=sz(s); ::s=s; int bas=0,son=1000000; while(bas<=son) { int orta=(bas+son)>>1; if(!ok(orta)) son=orta-1; else bas=orta+1; } return son; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...