제출 #148559

#제출 시각아이디문제언어결과실행 시간메모리
148559잉여로운 고3 (#200)HicCup (FXCUP4_hiccup)C++17
24 / 100
26 ms3328 KiB
#include <bits/stdc++.h>

#include "hiccup.h"

using namespace std;

typedef long long ll;

int n;

bool check(string &S, int k)
{
	ll s = 0, i;
	
	for(i=n-1; i>=0; i--){
		if(S[i] == '!') s ++;
		else if(S[i] == 'C') s -= k;
		if(s < 0) return 0;
	}
	
	return 1;
}

int HicCup(string S)
{
	int i, s, e;
	
	n = S.size();
	s = 0;
	
	for(i=0; i<n; i++){
		if(S[i] == 'H') s ++;
		else if(S[i] == 'C') s --;
		if(s < 0) return -1;
	}
	
	for(i=0; i<n; i++){
		if(S[i] == 'C') break;
		if(S[i] == '!') return -1;
	}
	
	if(s != 0) return -1;
	
	for(s=0, e=n-1; s<=e; ){
		if(check(S, s + e >> 1)) s = (s + e >> 1) + 1;
		else e = (s + e >> 1) - 1;
	}
	
	return s - 1;
}

컴파일 시 표준 에러 (stderr) 메시지

hiccup.cpp: In function 'int HicCup(std::__cxx11::string)':
hiccup.cpp:45:17: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   if(check(S, s + e >> 1)) s = (s + e >> 1) + 1;
               ~~^~~
hiccup.cpp:45:35: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   if(check(S, s + e >> 1)) s = (s + e >> 1) + 1;
                                 ~~^~~
hiccup.cpp:46:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   else e = (s + e >> 1) - 1;
             ~~^~~
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…