Submission #151620

# Submission time Handle Problem Language Result Execution time Memory
151620 2019-09-03T21:40:41 Z thebes HicCup (FXCUP4_hiccup) C++17
24 / 100
23 ms 3328 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');
                if(m==0){
                    ch.pop();
                    st.pop();
                    f = 1;
                }
            }
            else if(s[i]=='!'){
                if(ch.empty()&&f) continue;
                else if(ch.empty()){g=0; break;}
                if(ch.top()=='H'&&!f){g=0; break;}
                else if(ch.top()=='H'&&f) continue;
                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

hiccup.cpp: In function 'int HicCup(std::__cxx11::string)':
hiccup.cpp:20:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(i=0;i<s.size();i++){
                 ~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 256 KB Output is correct
2 Correct 2 ms 256 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 3 ms 376 KB Output is correct
5 Correct 23 ms 3192 KB Output is correct
6 Correct 9 ms 3192 KB Output is correct
7 Correct 8 ms 3192 KB Output is correct
8 Correct 23 ms 3320 KB Output is correct
9 Correct 23 ms 3320 KB Output is correct
10 Correct 9 ms 3196 KB Output is correct
11 Correct 2 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 256 KB Output is correct
2 Correct 2 ms 256 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 3 ms 376 KB Output is correct
5 Correct 23 ms 3192 KB Output is correct
6 Correct 9 ms 3192 KB Output is correct
7 Correct 8 ms 3192 KB Output is correct
8 Correct 23 ms 3320 KB Output is correct
9 Correct 23 ms 3320 KB Output is correct
10 Correct 9 ms 3196 KB Output is correct
11 Correct 11 ms 3320 KB Output is correct
12 Correct 16 ms 3328 KB Output is correct
13 Correct 19 ms 3192 KB Output is correct
14 Correct 2 ms 256 KB Output is correct
15 Incorrect 16 ms 3320 KB Output isn't correct
16 Halted 0 ms 0 KB -