#include "combo.h"
#include<bits/stdc++.h>
using namespace std;
// #define int long long
#define rep(i,n) for(int i=0;i<(n);i++)
#define rng(i,l,r) for(int i=(l);i<(r);i++)
#define rrep(i,n) for(int i=(n)-1;i>=0;i--)
#define rrng(i,l,r) for(int i=(r)-1;i>=(l);i--)
#define fi first
#define se second
#define all(x) (x).begin(),(x).end()
random_device rd;
mt19937 mt(rd());
uniform_int_distribution<int> rnd(0,1000000000);
int randint(int a,int b){
return a+rnd(mt)%(b-a+1);
}
std::string guess_sequence(int N) {
string t="ABXY";
vector<vector<char>> st(N,{'A','B','X','Y'});
int idx=0;
string ans="";
while(idx<N){
string s=ans;
while(s.size()<N){
vector<int> vs;
rep(i,4){
if(find(all(st[s.size()]),t[i])!=st[s.size()].end()){
vs.push_back(i);
}
}
s+=t[vs[randint(0,vs.size()-1)]];
}
// cout<<"s : "<<s<<endl;
int ret=press(s);
// cout<<"ret : "<<ret<<endl;
rng(i,idx,ret){
ans+=s[i];
if(i==0){
rng(j,1,N){
st[j].erase(find(all(st[j]),s[0]));
}
}
st[i]={s[i]};
}
if(ret!=N){
st[ret].erase(find(all(st[ret]),s[ret]));
}
idx=ret;
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |