Submission #148574

#TimeUsernameProblemLanguageResultExecution timeMemory
148574모현보유국 (#200)HicCup (FXCUP4_hiccup)C++17
24 / 100
28 ms4352 KiB
#include "hiccup.h" #include <bits/stdc++.h> using namespace std; stack<int> stk; string s; bool chk(int x){ int stk = 0; int save = 0; for(int i=0; i<s.size(); i++){ if(s[i] == '!'){ save++; continue; } if(s[i] == 'C'){ stk++; save -= x; if(save < 0) return 0; continue; } if(stk <= 0) return 0; else stk--; } return save >= 0; } bool valid(){ int cnt = 0; for(auto i : s){ if(i == 'C') cnt++; else{ if(cnt == 0) return 0; cnt--; } } return cnt == 0; } int HicCup(string S) { reverse(S.begin(), S.end()); s = S; int n = s.size(); if(!valid()){ return -1; } int ans = -1; int l = 0, r = 1000000; while(l <= r){ int m = l + r >> 1; if(chk(m)){ ans = m; l = m + 1; }else{ r = m - 1; } } return ans; }

Compilation message (stderr)

hiccup.cpp: In function 'bool chk(int)':
hiccup.cpp:11:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<s.size(); i++){
               ~^~~~~~~~~
hiccup.cpp: In function 'int HicCup(std::__cxx11::string)':
hiccup.cpp:49:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   int m = l + r >> 1;
           ~~^~~
hiccup.cpp:42:6: warning: unused variable 'n' [-Wunused-variable]
  int n = s.size();
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...