Submission #94504

#TimeUsernameProblemLanguageResultExecution timeMemory
94504SuperJavaCombo (IOI18_combo)C++17
100 / 100
69 ms544 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
#define sz(a) int(a.size())
string guess_sequence(int N) {
	string S = "";
	if(N == 1){
		int ans = press("AB");
		if(ans == 1){
			if(press("A")){
				return "A";
			}
			return "B";
		}
		if(press("X")){
			return "X";
		}
		return "Y";
	}
	if(true){
		int ans = press("AB");
		if(ans == 2) S += "AB";
		else if(ans == 1){
			if(press("A")){
				S += "A";
			}else{
				S += "B";
			}
		}else{
			if(press("X")){
				S += "X";
			}else{
				S += "Y";
			}
		}
	}
	string l = "ABXY";
	for (unsigned int i = 0; i < l.size(); ++i){
		if(l[i] == S[0]){
			l.erase(l.begin()+i);break;
		}
	}
	for (int i = S.size()+1; i < N; i++){
		int ans = press(S + l[0] + l[0] + S + l[0] + l[1] + S + l[0] + l[2] + S + l[1]);
		if(ans == sz(S)+2) S += l[0];
		else if(ans == sz(S)+1) S += l[1];
		else S += l[2];
	}
	if(sz(S) != N){
		if(press(S + l[0]) == sz(S) + 1) S += l[0];
		else if(press(S + l[1]) == sz(S) + 1) S += l[1];
		else S += l[2];
	}
	return S;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...