이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "hiccup.h"
#include <cstdio>
#include <iostream>
#include <string>
#include<math.h>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<map>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<int, pii> piii;
typedef pair<ll, ll> pll;
const int INF = 1e9 + 7;
const int MAX = 4005;
int HicCup(std::string s) {
int size = s.size();
int min = INF;
int cur = 0;
int cnt = 0;
int hc = 0;
for (int i = size - 1; i >= 0; i--) {
if (s[i] == '!') cnt++;
if (s[i] == 'H') {
if (hc > 0) hc--;
else return -1;
}
if (s[i] == 'C') {
hc++;
cur++;
if (min > cnt / cur) min = cnt / cur;
}
}
if (hc != 0) return -1;
bool check = false;
int ck = 0;
for (int i = 0; i < size; i++) {
if (s[i] == '!') break;
if (s[i] == 'C') {
if (ck == 0) break;
check = true;
break;
}
if (s[i] == 'H') ck = 1;
}
for (int i = 0; i < size - 1; i++) {
if (s[i] == 'H' && s[i + 1] == '!') {
check = false;
break;
}
}
if (!check) return -1;
return min;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |