Submission #150122

#TimeUsernameProblemLanguageResultExecution timeMemory
150122distutpia (#200)HicCup (FXCUP4_hiccup)C++17
100 / 100
34 ms11180 KiB
#include "hiccup.h"

using namespace std;

int A[1000000];
int B[1000000];

void init(){
	for (int i=0; i<1000000; i++){
		A[i]=0;
		B[i]=0;
	}
}

bool valid(string S){
	int N = S.size();
	bool preH = true;
	int t1=0, t2=0;
	for(int i=0;i<N;i++){
		if (S[i]=='H'){
			t1++;
			preH = true;
		}
		else if (S[i]== 'C'){
			t2++;
			preH = false;
		}
		else if (S[i]== '!'){
			if (preH) return false;
		}
		else{
			return false;
		}
		if (t1<t2){
			return false;
		}
	}
	if (t1!=t2){
		return false;
	}
	return true;
}

int HicCup(std::string S) {
	int N = S.size();
	int min = 10000000;
	if (!valid(S)){
		return -1;
	}
	init();
	int t1=0, t2=0,t3=0;
	for(int i=N-1; i>=0; i--){
		if (S[i]=='H'){
			A[t2-t1] = 0;
			B[t2-t1] = 0;
			t1++;
		}
		else if (S[i]=='C'){
			B[t2-t1]++;
			if (min > A[t2-t1]/B[t2-t1]){
				min = A[t2-t1]/B[t2-t1];
			}
			t2++;
		}
		else if (S[i]=='!'){
			A[t2-t1]++;
		}
	}
	return min;
}

Compilation message (stderr)

hiccup.cpp: In function 'int HicCup(std::__cxx11::string)':
hiccup.cpp:51:17: warning: unused variable 't3' [-Wunused-variable]
  int t1=0, t2=0,t3=0;
                 ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...