Submission #151211

#TimeUsernameProblemLanguageResultExecution timeMemory
151211rdd6584HicCup (FXCUP4_hiccup)C++17
100 / 100
30 ms8824 KiB
#include "hiccup.h" #include <vector> #include <algorithm> using namespace std; typedef pair<int, int> pii; vector<int> v; int hc[1000001]; string ss; int ans = 1e9; void dnc(int l, int r) { int cnt = 0, nf = 0, cc = 0; for (int i = r; i >= l; i--) { if (ss[i] == '!') { cnt++; nf = 1; } else { dnc(hc[i] + 1, i - 1); i = hc[i]; cc++; ans = min(ans, cnt / cc); nf = 0; } } if (nf) ans = -1; } int HicCup(std::string s) { int n = s.size(); ss = s; for (int i = 0; i < n; i++) { if (s[i] == 'H') v.push_back(i); else if (s[i] == 'C') { if (v.empty()) return -1; hc[i] = v.back(); v.pop_back(); } } if (!v.empty()) return -1; dnc(0, n - 1); // 가장 외곽 괄호쌍에서만 느낌표를 받을 수 있다. // C가 없는 것에 대한 예외처리 필요. // MIN.. // 안쪽에 대해서만. // // 그 괄호로 둘러쌓여져 있는 부분에서. // return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...