제출 #700875

#제출 시각아이디문제언어결과실행 시간메모리
700875mychecksedadCombo (IOI18_combo)C++17
5 / 100
1 ms256 KiB
#include <bits/stdc++.h>
using namespace std;

int press(std::string p);

char find_first(){
	int q = press("AB");
	if(q >= 1){
		q = press("A");
		if(q) 
			return 'A';
		return 'B';
	}
	q = press("X");
	if(q)
		return 'X';
	return 'Y';
}

string guess_sequence(int N){
	vector<string> c {"A", "B", "X", "Y"};
	char f = find_first();
	for(int i = 0; i < 4; ++i){
		if(c[i][0] == f){
			c.erase(c.begin() + i);
			break;
		}
	}
	string s;
	s += f;

	vector<string> Q {c[0], c[1] + c[0], c[1] + c[1], c[1] + c[2]};

	for(int i = 2; i < N; ++i){
		string t = "";
		for(int j = 0; j < 4; ++j) t += s + Q[j];
		int q = press(t);
		if(q == i - 1){
			s += c[2];
		}else if(q == i){
			s += c[0];
		}else{
			s += c[1];
		}
	}

	int q = press(s + c[0]);
	if(q == N){
		s += c[0];
	}else{
		q = press(s + c[1]);
		if(q == N){
			s += c[1];
		}else{
			s += c[2];
		}
	}

	return s;
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...