# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
151617 | 2019-09-03T21:37:18 Z | thebes | HicCup (FXCUP4_hiccup) | C++17 | 2 ms | 256 KB |
#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'); } else if(s[i]=='!'){ if(ch.empty()&&f) continue; else if(ch.empty()){g=0; break;} if(ch.top()=='H'){g=0; break;} 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
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 256 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 256 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |