Submission #372932

#TimeUsernameProblemLanguageResultExecution timeMemory
372932mariowong콤보 (IOI18_combo)C++14
5 / 100
1 ms256 KiB
#include "combo.h"

std::string guess_sequence(int N) {
	std::string p = ""; std::string S = "";
	char f,s,t;
	if (press("AB") >= 1){
		if (press("A") == 1)
		S+='A';
		else
		S+='B';
	}
	else
	{
		if (press("X") == 1)
		S+='X';
		else
		S+='Y';
	}
	for (int i = 2; i < N; i++){
		p.clear();
		if (S[0] == 'A'){
			p+=S; p+='B';
			p+=S; p+='X'; p+='X';
			p+=S; p+='X'; p+='Y';
			p+=S; p+='X'; p+='B';
			f='B'; s='X'; t='Y';
		}
		if (S[0] == 'B'){
			p+=S; p+='A';
			p+=S; p+='X'; p+='X';
			p+=S; p+='X'; p+='Y';
			p+=S; p+='X'; p+='A';
			f='A'; s='X'; t='Y';
		}
		if (S[0] == 'X'){
			p+=S; p+='A';
			p+=S; p+='B'; p+='B';
			p+=S; p+='B'; p+='Y';
			p+=S; p+='B'; p+='A';
			f='A'; s='B'; t='Y';
		}
		if (S[0] == 'Y'){
			p+=S; p+='A';
			p+=S; p+='B'; p+='B';
			p+=S; p+='B'; p+='X';
			p+=S; p+='B'; p+='A';
			f='A'; s='B'; t='X';
		}
		int ct=press(p);
		if (ct == i)
		S+=f;
		else
		if (ct == i-1)
		S+=t;
		else
		S+=s;
	}
	if (S[0] == 'A'){
		p=S+'B';
		if (press(p) == N)
		return p;
		p=S+'X';
		if (press(p) == N)
		return p;
		p=S+'Y';
		return p;
	}
	if (S[0] == 'B'){
		p=S+'A';
		if (press(p) == N)
		return p;
		p=S+'X';
		if (press(p) == N)
		return p;
		p=S+'Y';
		return p;
	}
	if (S[0] == 'X'){
		p=S+'A';
		if (press(p) == N)
		return p;
		p=S+'B';
		if (press(p) == N)
		return p;
		p=S+'Y';
		return p;
	}
	if (S[0] == 'Y'){
		p=S+'B';
		if (press(p) == N)
		return p;
		p=S+'X';
		if (press(p) == N)
		return p;
		p=S+'A';
		return p;
	}
	return S;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...