#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;
if(S.back() > 0) 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;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
256 KB |
Output is correct |
2 |
Correct |
2 ms |
376 KB |
Output is correct |
3 |
Correct |
2 ms |
256 KB |
Output is correct |
4 |
Correct |
3 ms |
504 KB |
Output is correct |
5 |
Correct |
22 ms |
4216 KB |
Output is correct |
6 |
Correct |
9 ms |
4216 KB |
Output is correct |
7 |
Correct |
9 ms |
4216 KB |
Output is correct |
8 |
Correct |
22 ms |
4216 KB |
Output is correct |
9 |
Correct |
24 ms |
4216 KB |
Output is correct |
10 |
Correct |
10 ms |
4216 KB |
Output is correct |
11 |
Correct |
2 ms |
256 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
256 KB |
Output is correct |
2 |
Correct |
2 ms |
376 KB |
Output is correct |
3 |
Correct |
2 ms |
256 KB |
Output is correct |
4 |
Correct |
3 ms |
504 KB |
Output is correct |
5 |
Correct |
22 ms |
4216 KB |
Output is correct |
6 |
Correct |
9 ms |
4216 KB |
Output is correct |
7 |
Correct |
9 ms |
4216 KB |
Output is correct |
8 |
Correct |
22 ms |
4216 KB |
Output is correct |
9 |
Correct |
24 ms |
4216 KB |
Output is correct |
10 |
Correct |
10 ms |
4216 KB |
Output is correct |
11 |
Correct |
12 ms |
4216 KB |
Output is correct |
12 |
Correct |
15 ms |
4296 KB |
Output is correct |
13 |
Correct |
14 ms |
4216 KB |
Output is correct |
14 |
Correct |
2 ms |
376 KB |
Output is correct |
15 |
Correct |
10 ms |
4216 KB |
Output is correct |
16 |
Correct |
2 ms |
376 KB |
Output is correct |
17 |
Correct |
2 ms |
256 KB |
Output is correct |
18 |
Correct |
3 ms |
632 KB |
Output is correct |
19 |
Correct |
30 ms |
4216 KB |
Output is correct |
20 |
Correct |
18 ms |
4220 KB |
Output is correct |
21 |
Correct |
50 ms |
5240 KB |
Output is correct |
22 |
Correct |
49 ms |
4984 KB |
Output is correct |
23 |
Correct |
76 ms |
5280 KB |
Output is correct |
24 |
Correct |
14 ms |
5212 KB |
Output is correct |
25 |
Correct |
22 ms |
5264 KB |
Output is correct |
26 |
Correct |
15 ms |
5240 KB |
Output is correct |
27 |
Correct |
61 ms |
5292 KB |
Output is correct |
28 |
Correct |
77 ms |
5112 KB |
Output is correct |
29 |
Correct |
76 ms |
5200 KB |
Output is correct |
30 |
Correct |
2 ms |
256 KB |
Output is correct |
31 |
Correct |
2 ms |
256 KB |
Output is correct |
32 |
Correct |
7 ms |
760 KB |
Output is correct |
33 |
Correct |
2 ms |
256 KB |
Output is correct |