Submission #1122333

#TimeUsernameProblemLanguageResultExecution timeMemory
1122333khomeCombo (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...