Submission #150920

#TimeUsernameProblemLanguageResultExecution timeMemory
150920JustInCaseHicCup (FXCUP4_hiccup)C++17
0 / 100
2 ms256 KiB
#include <bits/stdc++.h>

#ifdef LOCAL
	#include "grader.cpp"
#else
	#include "hiccup.h"
#endif

#define hic_cup HicCup

bool check_is_x_string(const std::string &s, int32_t x) {
	std::stack< int32_t > st;

	for(int32_t i = 0; i < s.size(); i++) {
		if(s[i] == 'H') {
			st.push(x);
		}
		else if(s[i] == '!') {
			if(!st.empty()) {
				int32_t aux = st.top();
				st.pop();

				aux--;
				if(aux != 0) {
					st.push(aux);
				}
			}
		}
	}

	if(st.empty()) {
		return true;
	}
	else {
		return false;
	}
}

int32_t hic_cup(std::string s) {
	int32_t low = 0, high = s.size();
	while(low <= high) {
		int32_t mid = (low + high) / 2;

		if(check_is_x_string(s, mid)) {
			low = mid + 1;
		}
		else {
			high = mid - 1;
		}
	}

	return low - 1;
}

Compilation message (stderr)

hiccup.cpp: In function 'bool check_is_x_string(const string&, int32_t)':
hiccup.cpp:14:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int32_t i = 0; i < s.size(); i++) {
                     ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...