Submission #1360853

#TimeUsernameProblemLanguageResultExecution timeMemory
1360853po_rag526Combo (IOI18_combo)C++20
100 / 100
5 ms484 KiB
#include "combo.h"
#include<bits/stdc++.h>
using namespace std;
string guess_sequence(int n) {
	int a=press("AB");
	string curs,ads[8];
	vector<char>v;
	v.push_back('A');
	v.push_back('B');
	v.push_back('X');
	v.push_back('Y');
	if(a!=0){
		int b=press("A");
		if(b==1) curs="A";
		else curs="B"; 
	}
	else{
		int b=press("X");
		if(b==1) curs="X";
		else curs="Y";
	}
	if(n==1) return curs;
	auto it=lower_bound(v.begin(),v.end(),curs[0]);
	v.erase(it);
	ads[0]="";
	ads[0]+=v[1];
	ads[1]="";
	ads[1]+=v[2];
	ads[2]=ads[1];
	ads[3]=ads[1];
	ads[1]+=v[0];
	ads[2]+=v[1];
	ads[3]+=v[2];
//	cout<<ads[0]<<' '<<ads[1]<<' '<<ads[2]<<' '<<ads[3]<<"\n";
	for(int i=2;i<=n-1;i++){
		string ask="";
		for(int i=0;i<4;i++) ask+=curs,ask+=ads[i];
		int nn=press(ask);
		if(nn==i-1) curs+=v[0];
		else if(nn==i) curs+=v[1];
		else curs+=v[2];
	}
	a=press(curs+v[0]);
	if(a==n) return curs+v[0];
	a=press(curs+v[1]);
	if(a==n) return curs+v[1];
	else return curs+v[2];
//	cout<<curs;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...