Submission #1122334

#TimeUsernameProblemLanguageResultExecution timeMemory
1122334khomeCombo (IOI18_combo)C++17
0 / 100
1 ms336 KiB
#include <bits/stdc++.h> #include "combo.h" using namespace std; string guess_sequence(int N) { vector<char> a; a={'X', 'Y', 'A', 'B'}; string res, cur; int ab = press("AB"), bx = press("BX"), id=2; if (ab == 1) { id = 2; res = "AB"; } if (ab == 1) { if (bx == 1) { //BX = 1; id=3; int by = press("BY"); if (by == 2) res = "BY"; else res = "BY"; } if (bx == 2) { id = 3; res += "BX"; } if (bx == 0) { // BX = 0; AY, AX id = 2; int ay = press("AY"); if (ay == 2) res = "AY"; else res = "AX"; } } else if (ab == 0) { if (bx == 1) { // XA, XB, XY id = 0; int xa = press("XA"), xb = press("XB"); if (xa == 2) res = "XA"; else if (xb == 2) res = "XB"; else res = "XY"; } else { // YA, YB, YX id = 1; int ya = press("YA"), yb = press("YB"); if (ya == 2) res = "YA"; else if (yb == 2) res = "YB"; else res = "YX"; } } int n = res.size(); if (N==3){ int x = press(res+a[(id+1)%4]), y = press(res+a[(id+2)%4]); if (x == 3) return res+a[(id+1)%4]; else if (y == 3) return res+a[(id+2)%4]; else return res+a[(id+3)%4]; } char c = a[(id+1)%4], d = a[(id+2)%4], e = a[(id+3)%4]; int ask; while (n!=N-1){ n=res.size(); if (res.size()==N-1) break; ask = press(res+c+c+res+c+d+res+c+e+res+d); if (ask == n+2) res += c; else if (ask == n+1) res += d; else res += e; } ask = press(res+c); if (ask == N) res+=c; else{ int ask2 = press(res+d); if (ask2 == N) res+=d; else res+=e;} return res; }

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:62:23: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   62 |         if (res.size()==N-1) break;
      |             ~~~~~~~~~~^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...