Submission #150348

# Submission time Handle Problem Language Result Execution time Memory
150348 2019-09-01T08:11:28 Z HSNU(#3687, joylintp, 147, wiwiho) HicCup (FXCUP4_hiccup) C++17
0 / 100
5 ms 384 KB
#include<bits/stdc++.h>
#include "hiccup.h"

using namespace std;

bool chk(string s)
{
    if (s[0] == '!')
        return false;
    for (int i = 1; i < (int)s.size(); i++)
        if (s[i] == '!' && s[i - 1] == 'H')
            return false;

    stack<char> stk;
    for (int i = 0; i < (int)s.size(); i++)
        if (s[i] == '!')
            continue;
        else if (stk.empty())
            stk.push(s[i]);
        else if (stk.top() == 'H' && s[i] == 'C')
            stk.pop();
        else
            stk.push(s[i]);

    return stk.empty();
}

int HicCup(string S)
{
	long long N = S.size();

	if (!chk(S))
        return -1;

    long long ans = N;

    stack<long long> stk;
    string s = "H" + S + "C";
    for (int i = 0; i < (int)s.size(); i++)
    {
        if (s[i] == 'H')
            stk.push(-1);
        else if (s[i] == 'C')
        {
            long long ttl = 0, cnt = 0;
            while (stk.top() != -1)
                ttl += stk.top(), cnt++, stk.pop();
            stk.pop();

            if (cnt)
                ans = min(ans, ttl / cnt);
        }
        else
        {
            int cnt = 0;
            while (s[i] == '!')
                cnt++, i++;
            i--;
            stk.push(cnt);
        }
    }

	return (int)ans;
}
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -