This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#include "combo.h"
using namespace std;
#define forinc(i,a,b) for(int i=a;i<=b;i++)
#define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int rnd(int l,int r)
{
return l+rng()%(r-l+1);
}
string d[]={"A","B","X","Y"};
bool dd[5];
string s="";
//int press(string s){};
string guess_sequence(int n)
{
int fi=4;
int cnt=0;
int num=0;
int r=press("AB");
//cout<<"AB";
//int r;cin>>r;
if(r>0)
{
r=press("A");
//cout<<"A";cin>>r;
if(r>0)
{
s+="A";fi=0;
}
else s+="B",fi=1;
}
else
{
r=press("X");
//cout<<"X";cin>>r;
if(r>0) s+="X",fi=2;
else s+="Y",fi=3;
}
forinc(i,1,n-1)
{
memset(dd,0,sizeof dd);
dd[fi]=1;
int dem=0;
int oyr=cnt;
while(dd[0]==0||dd[1]==0||dd[2]==0||dd[3]==0)
{
int x=rnd(0,3);
if(x==fi) continue;
if(dd[x]==1) continue;
dd[x]=1;
dem++;
if(dem==3)
{
s+=d[x];
//cnt=cnt+1;
break;
}
int ret=press(s+d[x]);
//cout<<s+d[x]<<"\n";
//int ret; cin>>ret;
if(ret==i) continue;
s+=d[x];
//cnt=ret;
break;
}
//cout<<fi<<"\n";;
}
return s;
}
Compilation message (stderr)
combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:46:13: warning: unused variable 'oyr' [-Wunused-variable]
46 | int oyr=cnt;
| ^~~
combo.cpp:20:9: warning: unused variable 'num' [-Wunused-variable]
20 | int num=0;
| ^~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |