#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
void __print(int x) {cerr << x;}
void __print(long x) {cerr << x;}
void __print(long long x) {cerr << x;}
void __print(unsigned x) {cerr << x;}
void __print(unsigned long x) {cerr << x;}
void __print(unsigned long long x) {cerr << x;}
void __print(float x) {cerr << x;}
void __print(double x) {cerr << x;}
void __print(long double x) {cerr << x;}
void __print(char x) {cerr << '\'' << x << '\'';}
void __print(const char *x) {cerr << '\"' << x << '\"';}
void __print(const string &x) {cerr << '\"' << x << '\"';}
void __print(bool x) {cerr << (x ? "true" : "false");}
template<typename T, typename V>
void __print(const pair<T, V> &x) {cerr << '{'; __print(x.first); cerr << ','; __print(x.second); cerr << '}';}
template<typename T>
void __print(const T &x) {int f = 0; cerr << '{'; for (auto &i: x) cerr << (f++ ? "," : ""), __print(i); cerr << "}";}
void _print() {cerr << "]\n";}
template <typename T, typename... V>
void _print(T t, V... v) {__print(t); if (sizeof...(v)) cerr << ", "; _print(v...);}
#ifndef ONLINE_JUDGE
#define debug(x...) cerr << "[" << #x << "] = ["; _print(x)
#else
#define debug(x...)
#endif
typedef tree<
int,
null_type,
less_equal<int>,
rb_tree_tag,
tree_order_statistics_node_update> ordered_set;
typedef tree<
int,
null_type,
less<int>,
rb_tree_tag,
tree_order_statistics_node_update> ordered_multiset;
#define all(v) ((v).begin()), ((v).end())
#define sz(v) ((int)((v).size()))
#define pb push_back
typedef long long ll;
#include"combo.h"
string guess_sequence(int n){
string res;
if(press("AB")>0){
if(press("A")>0){
res="A";
}else{
res="B";
}
}else{
if(press("X")>0){
res="X";
}else{
res="Y";
}
}
if(n==1){
return res;
}
string a="ABXY",ne;
for(int i=0;i<4;i++){
if(a[i]!=res[0]){
ne.pb(a[i]);
}
}
while(res.size()<n-1){
string q,t;
t=res;
t.pb(ne[0]);
q+=t;
t=res;
t.pb(ne[1]);
for(int j=0;j<3;j++){
t.pb(ne[j]);
q+=t;
t.pop_back();
}
int p=press(q);
if(p==res.size()+1){
res.pb(ne[0]);
}else
if(p==res.size()+2){
res.pb(ne[1]);
}else{
res.pb(ne[2]);
}
}
string t1=res;
t1.pb(ne[0]);
t1+=res;
t1.pb(ne[1]);
if(press(t1)==n){
res+=ne[0];
if(press(res)==n){
return res;
}else{
res.pop_back();
res+=ne[1];
return res;
}
}else{
res+=ne[2];
return res;
}
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |