| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1338910 | luvwinter | Combo (IOI18_combo) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
#include "combo.h"
#define boost() ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define fo freopen((NAME+".INP").c_str(), "r", stdin), freopen((NAME+".OUT").c_str(), "w", stdout)
#define dd long double
#define pii pair<int , int>
#define pb push_back
#define pf push_front
#define ppf pop_front
#define ppb pop_back
#define in insert
#define lb lower_bound
#define ub upper_bound
#define FOR(i , l , r) for(int i = (l) ; i <= (r) ; i ++)
#define FOD(i , r , l) for(int i = (r) ; i >= (l) ; i --)
#define endl '\n'
#define all(x) x.begin() , x.end()
#define sz(a) (int)a.size()
#define fi first
#define se second
#define mp make_pair
using namespace std;
const string NAME = "";
vector<char> ss = {'X' , 'Y' , 'A' , 'B'};
string guess_sequence(int n) {
string s = "AB";
if(press(s) == 0){
if(press("X") == 0) s = "Y";
else s = "X";
}
else {
if(press("A") == 0) s = "B";
else s = "A";
}
if(n == 1) return s;
vector<char> c;
for(auto x : ss) {
if(x == s[0]) continue;
else c.pb(x);
}
FOR(i , 1 , n - 1) {
string tmp = res + c[0];
for(auto x : c) {
tmp += res + c[1] + x;
}
int k = press(tmp);
if(sz(res) == k - 1) {
res += c[0];
}
else if(sz(res) == k - 2) {
res += c[1];
}
else{
res += c[2];
}
}
return res;
}
