Submission #150488

#TimeUsernameProblemLanguageResultExecution timeMemory
150488오리버스부릉부릉 (#200)HicCup (FXCUP4_hiccup)C++17
24 / 100
37 ms7536 KiB
#include "hiccup.h"
#include <stack>
#include <vector>
using namespace std;

vector<int> ss, ww;
int HicCup(std::string S) {
	if (S[0] == '!') return -1;
	int N = S.size();
	int sp, wp;
	stack<int> sta;
	for (int i = 0; i < N; i++) {
		if (S[i] == '!') {
			ww.push_back(i);
			continue;
		}
		if (S[i] == 'H') {
			sta.push(1);
		}
		else {
			if (sta.empty()) return -1;
			else {
				sta.pop();
				ss.push_back(i);
			}
		}
	}
	if (!sta.empty()) return -1;

	int ret = 0;
	int l = 1, r = 1000000, mid;
	int sz = ss.size(), wz = ww.size();
	while (l <= r) {
		bool suc = true;
		mid = (l + r) / 2;
		sp = wp = 0;
		for (int v : ss) {
			while (wp < wz && ww[wp] < v) wp++;
			if (wp == wz) {
				suc = false; break;
			}
			int cnt = 0;
			while (wp < wz && cnt < mid) {
				cnt++;
				wp++;
			}
			if (cnt < mid) {
				suc = false; break;
			}
		}
		if (suc) {
			ret = mid;
			l = mid + 1;
		}
		else r = mid - 1;
	}

	return ret;
}

Compilation message (stderr)

hiccup.cpp: In function 'int HicCup(std::__cxx11::string)':
hiccup.cpp:10:6: warning: variable 'sp' set but not used [-Wunused-but-set-variable]
  int sp, wp;
      ^~
hiccup.cpp:32:6: warning: unused variable 'sz' [-Wunused-variable]
  int sz = ss.size(), wz = ww.size();
      ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...