Submission #1343528

#TimeUsernameProblemLanguageResultExecution timeMemory
1343528NAMINCombo (IOI18_combo)C++20
5 / 100
0 ms412 KiB
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;

string guess_sequence(int N){
	vector<char> caras{'A','B','X','Y'};
	string res = "";
	for(int i=0;i<3;i++){
		if(press(res+caras[i])!=0){
			res+=caras[i];
			break;
		}
	}
	if(res==""){
		res += caras[3];
	}
	caras.erase(find(caras.begin(),caras.end(),res[0]));

	for(int len=2;len<=N-1;len++){
		string nxt = res+caras[0];
		for(char c : caras){
			for(int i=0;i<(int)res.size();i++){
				nxt += res[i];
			}
			nxt += caras[1];
			nxt += c;
		}
		int preflen = press(nxt);
		if(preflen==len-1){
			res += caras[2];
		}
		else if(preflen==len){
			res += caras[0];
		}
		else{
			assert(preflen==len+1);
			res += caras[1];
		}
	}
	assert((int)res.size()==N-1);
	for(int i=0;i<2;i++){
		if(press(res+caras[i])==N){
			res+=caras[i];
			break;
		}
	}
	if((int)res.size()==N-1){
		res += caras[2];
	}
	//cout << res << endl;
	return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...