Submission #1226873

#TimeUsernameProblemLanguageResultExecution timeMemory
1226873Jer콤보 (IOI18_combo)C++17
97 / 100
6 ms484 KiB
#include "combo.h"
#include <bits/stdc++.h>

using namespace std;

vector<char> l = {'A', 'B', 'X', 'Y'};
vector<char> u;

char find_first()
{
	for (int i = 0; i < 3; i++)
	{
		string g;
		g.push_back(l[i]);
		if (press(g) == 1)
			return l[i];
	}

	return l[l.size() - 1];
}

int x;
std::string guess_sequence(int n)
{
	string curr;
	curr.push_back(find_first());

	if (n == 1)
		return curr;

	for (auto i : l)
		if (i != curr[0])
			u.push_back(i);

	string g;
	while (curr.size() < n - 1)
	{
		g.clear();
		for (int i = 0; i < 3; i++)
			g += curr, g.push_back(u[0]), g.push_back(u[i]);
		g += curr, g.push_back(u[1]);
		int p = press(g);

		if (p == curr.size() + 2)
			curr.push_back(u[0]);
		else if (p == curr.size() + 1)
			curr.push_back(u[1]);
		else if (p == curr.size())
			curr.push_back(u[2]);
	}

	for (int i = 0; i < 2; i++)
	{
		g.clear();
		g += curr, g.push_back(u[i]);
		if (press(g) == n)
			return g;
	}

	return curr + u[2];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...