Submission #228049

#TimeUsernameProblemLanguageResultExecution timeMemory
228049TehillahCombo (IOI18_combo)C++14
30 / 100
64 ms564 KiB
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;

using ll = long long;

#define pb push_back
#define mkp make_pair
#define ff first
#define ss second
#define all(a) a.begin(), a.end()
#define sz(a) (int)(a.size())
#define clr(a, b) memset(a, b, sizeof(a))
#define REP(i, a, b) for(int i=(int)(a); i<(int)(b); ++i)
#define REPD(i, a, b) for(int i=(int)(a)-1; i>=(int)(b); --i)
#define FOR(it,c) for ( __typeof((c).begin()) it=(c).begin(); it!=(c).end(); it++ )

template<typename T> inline bool chkmin(T &a, const T &b) { return a > b ? a = b, 1 : 0; }
template<typename T> inline bool chkmax(T &a, const T &b) { return a < b ? a = b, 1 : 0; }

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

string guess_sequence(int N) {
	string res = "";
	int ret = press("AB");
	if(ret >= 1) {
		ret = press("A");
		res += (ret == 1) ? 'A' : 'B';
	} else {
		ret = press("X");
		res += (ret == 1) ? 'X' : 'Y';
	}
	REP(i, 1, N) {
		ret = press(res + "A" + res + "B");
		if(ret >= i+1) {
			ret = press(res + "A");
			if(ret == i+1) 
				res += 'A';
			else
				res += 'B';
		} else {
			ret = press(res + "X");
			if(ret == i+1) 
				res += 'X';
			else
				res += 'Y';		
		}
	}
	return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...