Submission #1358486

#TimeUsernameProblemLanguageResultExecution timeMemory
1358486thesenCombo (IOI18_combo)C++20
100 / 100
5 ms484 KiB
#include "combo.h"

#include <bits/stdc++.h>
using namespace std;

#define ll int
#define vll vector<ll>
#define vbool vector<bool>
#define pairll pair<ll, ll>
#define pb push_back
#define fi first
#define sc second

std::string guess_sequence(int n) {
	if(n == 1){
		if(press("A"))return "A";
		if(press("B"))return "B";
		if(press("X"))return "X";
		return "Y";
	}

	string res;

	ll ans = press("AB");
	if(ans){
		ans = press("AXAYAB");
		if(ans == 2) res = "A";
		else res = "B";
	}else{
		ans = press("XAXBXY");
		if(ans == 2) res = "X";
		else res = "Y";
	}

	char c1 = 'A', c2 = 'B', c3 = 'X';
	if(res == "A") c1 = 'Y';
	else if(res == "B") c2 = 'Y';
	else if(res == "X") c3 = 'Y'; 
	
	for(ll i = 0; i < n-2; i++){
		ans = press(res + c1 + c1 + res + c1 + c2 + res + c1 + c3 + res + c2);
		if(ans == res.size() + 2){
			res += c1;
		}else if(ans == res.size() + 1){
			res += c2;
		}else res += c3;
	}

	ans = press(res + c1);
	if(ans == n) return res + c1;
	ans = press(res + c2);
	if(ans == n) return res + c2;
	else return res + c3;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...