Submission #150337

#TimeUsernameProblemLanguageResultExecution timeMemory
150337먀 (#200)HicCup (FXCUP4_hiccup)C++17
24 / 100
29 ms4352 KiB
#include "hiccup.h" #include<bits/stdc++.h> using namespace std; int n; string s; bool can (int L) { vector<int> S; S.push_back(-1); for(int i=0;i<n;i++) { if(s[i] == 'H') S.push_back(-1); if(s[i] == 'C') { if(S.empty() || S.back() >= 0) return false; S.pop_back(); S.push_back(1); } if(s[i] == '!') { if(S.empty() || (-2 < S.back() && S.back() < 0)) return false; S.back()++; } if(S.back() == L+1) { S.pop_back(); if(S.empty()) return false; if(S.back() < 0) S.back() = -2; } } return S.size() == 1 && S[0] < 0; } int HicCup(string _) { n = _.size(); s = _; int S = -1, E = n; while(S<E) { int M = (S+E)>>1; can(M+1) ? S = M+1 : E = M; } return S; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...