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 "combo.h"
#include <bits/stdc++.h>
using namespace std;
//void press(p);
string guess_sequence(int N) {
//first letter guess
char first;
int hold= press("AB");
if(hold>=1){
hold=press("A");
if(hold==1){
first='A';
}
else{
first='B';
}
}
else{
hold=press("X");
if(hold==1){
first='X';
}
else{
first='Y';
}
}
unordered_map<string,string>mp;
unordered_map<char,char>mp2;
if(first=='A'){
mp["AB"]="XY";
mp["AX"]="XX";
mp["AY"]="XB";
mp["B"]='B';
mp2['A']='X';
mp2['B']='B';
mp2['X']='Y';
}
else if(first=='B'){
mp["AB"]="XY";
mp["AX"]="XA";
mp["AY"]="XX";
mp["B"]='A';
mp2['A']='X';
mp2['B']='A';
mp2['X']='Y';
}
else if(first=='X'){
mp["AB"]="AB";
mp["AX"]="AY";
mp["AY"]="AA";
mp["B"]='B';
mp2['A']='A';
mp2['B']='B';
mp2['X']='Y';
}
else{ //Y
mp["AB"]="AB";
mp["AX"]="AX";
mp["AY"]="AA";
mp["B"]='B';
mp2['A']='A';
mp2['B']='B';
mp2['X']='X';
}
//normal guess
string ans="";
ans.push_back(first);
for(int x=1;x<N-1;x++){
hold=press(ans+mp["AB"]+ans+mp["AX"]+ans+mp["AY"]+ans+mp["B"]);
if(hold==x+2){
ans.push_back(mp2['A']);
}
else if(hold==x+1){
ans.push_back(mp2['B']);
}
else{
ans.push_back(mp2['X']);
}
}
//last guess
if(N>1){
hold=press(ans+"A"+ans+"B");
if(hold==N){
hold=press(ans+"A");
if(hold==N){
ans.push_back('A');
}
else{
ans.push_back('B');
}
}
else{
hold=press(ans+"X");
if(hold==N){
ans.push_back('X');
}
else{
ans.push_back('Y');
}
}
}
//cout << ans << " guess\n";
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |