Submission #1251533

#TimeUsernameProblemLanguageResultExecution timeMemory
1251533thuhienneCombo (IOI18_combo)C++20
100 / 100
7 ms548 KiB
#include <bits/stdc++.h>
#include "combo.h"

using namespace std;

char c[] = {'A','B','X','Y'};
vector <char> remain;

std::string guess_sequence(int n) {
	string res = "",pressing = "";
	int start;
	if (press("XY") >= 1) {
		if (press("X") == 1) start = 2;
		else start = 3;
	} else {
		if (press("A") == 1) start = 0;
		else start = 1;
	}
	res.push_back(c[start]);
	if (n == 1) {
		return res;
	}
	for (int i = 0;i < 4;i++) if (i != start) remain.push_back(c[i]);
	for (int i = 2;i < n;i++) {
		char fi = remain[0],se = remain[1],th = remain[2];
		pressing = res + fi + res + se + fi + res + se + se + res + se + th;
		int d = press(pressing);
		if (d == i - 1) res.push_back(th);
		else if (d == i) res.push_back(fi);
		else res.push_back(se);
	}
	for (int i = 0;i < 2;i++) {
		res.push_back(remain[i]);
		if (press(res) == n) {
			return res;
		}
		res.pop_back();
	}
	res.push_back(remain[2]);
	return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...