# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1216529 | santi3223 | Memory (IOI10_memory) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;
#define ll long long
#define vl vector<ll>
#define vb vector<bool>
#define pb push_back
#define ff(aa, bb, cc) for(ll aa = bb; aa < cc; aa++)
#define pll pair<ll, ll>
#define fi first
#define se second
#define ed "\n"
#define all(aaa) aaa.begin(), aaa.end()
#define rall(aaa) aaa.rbegin(), aaa.rend()
ll MOD = 1e9+7;
string guess_sequence(int N){
if(N == 1){
if(press("A")){
return "A";
}
if(press("B")){
return "B";
}
if(press("X")){
return "X";
}
return "Y";
}
string str = "";
if(press("AB")){
if(press("A")){
str = "A";
ll n = 1;
while(n < N-1){
n = str.size();
ll v = press(str+"B"+str+"XY"+str+"XX"+str+"XB");
if(v == n){
str += "Y";
}
else if(v == n+1){
str += "B";
}
else{
str += "X";
}
n = str.size();
}
if(press(str+"B") == N){
str += "B";
}
else if(press(str+"X") == N){
str += "X";
}
else{
str += "Y";
}
}
else{
str = "B";
ll n = 1;
while(n < N-1){
n = str.size();
ll v = press(str+"A"+str+"XY"+str+"XX"+str+"XA");
if(v == n){
str += "Y";
}
else if(v == n+1){
str += "A";
}
else{
str += "X";
}
n = str.size();
}
if(press(str+"A") == N){
str += "A";
}
else if(press(str+"X") == N){
str += "X";
}
else{
str += "Y";
}
}
}
else{
if(press("X")){
str = "X";
ll n = 1;
while(n < N-1){
n = str.size();
ll v = press(str+"A"+str+"BY"+str+"BB"+str+"BA");
if(v == n){
str += "Y";
}
else if(v == n+1){
str += "A";
}
else{
str += "B";
}
n = str.size();
}
if(press(str+"B") == N){
str += "B";
}
else if(press(str+"A") == N){
str += "A";
}
else{
str += "Y";
}
}
else{
str = "Y";
ll n = 1;
while(n < N-1){
n = str.size();
ll v = press(str+"A"+str+"BX"+str+"BB"+str+"BA");
if(v == n){
str += "X";
}
else if(v == n+1){
str += "A";
}
else{
str += "B";
}
n = str.size();
}
if(press(str+"B") == N){
str += "B";
}
else if(press(str+"A") == N){
str += "A";
}
else{
str += "X";
}
}
}
return str;
}