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;
#define mt make_tuple
string guess_sequence(int N) {
string A = "";
if (press("AB")) {
if (press("A"))
A = "A";
else
A = "B";
}
else {
if (press("X"))
A = "X";
else
A = "Y";
}
string s0 , s1, s2, s3 , s4;
if (A[0] == 'A') {
tie(s0 , s1 , s2 , s3, s4) = mt("BB" , "BX" , "BY" , "X" , "Y");
}
else if (A[0] == 'B') {
tie(s0 , s1 , s2 , s3, s4) = mt("AA" , "AX" , "AY" , "X" , "Y");
}
else if (A[0] == 'X') {
tie(s0 , s1 , s2 , s3, s4) = mt("BB" , "BA" , "BY" , "A" , "Y");
}
else {
tie(s0 , s1 , s2 , s3, s4) = mt("BB" , "BX" , "BA" , "X" , "A");
}
while (A.size() <= N - 2) {
int res = press(A + s0 + A + s1 + A + s2 + A + s3);
res -= A.size();
if (res == 0) A += s4;
else if (res == 1) A += s3;
else A.push_back(s0[0]);
// cout << A << endl;
}
if (A.size() == N - 1) {
if (press(A + s3 + A + s4) == A.size() + 1) {
if (press(A + s3) == A.size() + 1 )
A += s3;
else
A += s4;
}
else
A.push_back(s0[0]);
}
// cout << A << endl;
return A;
}
Compilation message (stderr)
combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:39:18: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
39 | while (A.size() <= N - 2) {
| ~~~~~~~~~^~~~~~~~
combo.cpp:47:15: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
47 | if (A.size() == N - 1) {
| ~~~~~~~~~^~~~~~~~
combo.cpp:48:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
48 | if (press(A + s3 + A + s4) == A.size() + 1) {
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
combo.cpp:49:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
49 | if (press(A + s3) == A.size() + 1 )
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |