Submission #372933

#TimeUsernameProblemLanguageResultExecution timeMemory
372933mariowongCombo (IOI18_combo)C++14
5 / 100
1 ms200 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;
	}
}

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:4:38: warning: control reaches end of non-void function [-Wreturn-type]
    4 |  std::string p = ""; std::string S = "";
      |                                      ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...