Submission #151356

# Submission time Handle Problem Language Result Execution time Memory
151356 2019-09-02T14:26:25 Z apostoldaniel854 HicCup (FXCUP4_hiccup) C++17
24 / 100
18 ms 3324 KB
#include <bits/stdc++.h>
#include "hiccup.h"
using namespace std;

#define HOME1


const int N = 1e7;
int stk[1 + N];

bool check (int x, string &s) {
    int top = 0;
    for (int i = 0; i < s.size (); i++) {
        if (s[i] == 'H') {
            top++;
            stk[top] = 1;
        }
     //   cout << top << "\n";
        if (s[i] == 'C') {
            if (stk[top] != 1) return false;
            stk[top] = 2;
            if (x == 0)
                top--;
        }
        if (s[i] == '!' && top) {
            if (stk[top] < 2) continue;
            stk[top]++;
            if (stk[top] - 2 == x)
                top--;
        }
    }
    return top == 0;
}

int HicCup (string s) {
    int l, r, ans;
    l = 0; r = s.size ();
    ans = -1;
    while (l <= r) {
        int mid = (l + r) / 2;
        if (check (mid, s)) ans = mid, l = mid + 1;
        else r = mid - 1;
    }
    return ans;
}
#ifdef HOME
int main() {
    cout << HicCup("HC!!HHC!HC!!!C!!!") << "\n";
    return 0;
}
#endif

Compilation message

hiccup.cpp: In function 'bool check(int, std::__cxx11::string&)':
hiccup.cpp:13:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < s.size (); i++) {
                     ~~^~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 18 ms 3320 KB Output is correct
6 Correct 9 ms 3324 KB Output is correct
7 Correct 9 ms 3192 KB Output is correct
8 Correct 17 ms 3320 KB Output is correct
9 Correct 17 ms 3320 KB Output is correct
10 Correct 9 ms 3320 KB Output is correct
11 Correct 2 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 18 ms 3320 KB Output is correct
6 Correct 9 ms 3324 KB Output is correct
7 Correct 9 ms 3192 KB Output is correct
8 Correct 17 ms 3320 KB Output is correct
9 Correct 17 ms 3320 KB Output is correct
10 Correct 9 ms 3320 KB Output is correct
11 Correct 10 ms 3324 KB Output is correct
12 Correct 11 ms 3320 KB Output is correct
13 Correct 14 ms 3320 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 -