Submission #151619

# Submission time Handle Problem Language Result Execution time Memory
151619 2019-09-03T21:38:52 Z thebes HicCup (FXCUP4_hiccup) C++17
24 / 100
23 ms 4344 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'){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

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 504 KB Output is correct
5 Correct 23 ms 4216 KB Output is correct
6 Correct 9 ms 4216 KB Output is correct
7 Correct 9 ms 4220 KB Output is correct
8 Correct 23 ms 4216 KB Output is correct
9 Correct 23 ms 4344 KB Output is correct
10 Correct 9 ms 4216 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 504 KB Output is correct
5 Correct 23 ms 4216 KB Output is correct
6 Correct 9 ms 4216 KB Output is correct
7 Correct 9 ms 4220 KB Output is correct
8 Correct 23 ms 4216 KB Output is correct
9 Correct 23 ms 4344 KB Output is correct
10 Correct 9 ms 4216 KB Output is correct
11 Correct 10 ms 4216 KB Output is correct
12 Correct 10 ms 4216 KB Output is correct
13 Correct 21 ms 4216 KB Output is correct
14 Correct 2 ms 256 KB Output is correct
15 Correct 11 ms 4300 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 552 KB Output is correct
19 Incorrect 9 ms 4216 KB Output isn't correct
20 Halted 0 ms 0 KB -