Submission #1029628

#TimeUsernameProblemLanguageResultExecution timeMemory
1029628DorostWefCombo (IOI18_combo)C++17
97 / 100
21 ms1840 KiB
#include "combo.h"
#include <bits/stdc++.h>

using namespace std;

string guess_sequence(int N) {
	int n = N;
	string t = "ABXY";
	int a[4] = {};
	a[0] = press ("A");
	a[1] = press ("B");
	a[2] = press ("X");
	a[3] = 1 - (a[0] + a[1] + a[2]);
	string s;
	string tt;
	for (int i = 0; i < 4; i++) {
		if (a[i]) {
			s += t[i];
			if (N == 1)
				return s;
		} else {
			tt += t[i];
		}
	}
	for (int i = 1; i < n - 1; i++) {
		string g = s;
		g += tt[0];
		g += s;
		g += tt[1];
		g += tt[0];
		g += s;
		g += tt[1];
		g += tt[1];
		g += s;
		g += tt[1];
		g += tt[2];
		int w = press (g);
		if (w == (int)s.size())
			s += tt[2];
		else if (w == (int)s.size() + 1)
			s += tt[0];
		else if (w == (int)s.size() + 2)
			s += tt[1];
		else {
			assert (false);
		}
	}
	string g = s;
	g += tt[0];
	string gg = s;
	gg += tt[1];
	string ggg = s;
	ggg += tt[2];
	int w = press (g);
	int w2 = press (gg);
	if (w == n) {
		return g;
	} else if (w2 == n) {
		return gg;
	} else {
		return ggg;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...