제출 #803723

#제출 시각아이디문제언어결과실행 시간메모리
803723ALeonidou콤보 (IOI18_combo)C++17
97 / 100
25 ms696 KiB
#include "combo.h"
using namespace std;
 
#define ll long long
string guess_sequence(int n) {
    if (n == 1){
        ll a = press("A"), b = press("B"), x = press("X");
        if (a) return "A";
        else if (b) return "B";
        else if (x) return "X";
        return "Y";
    }

    string p, s = "";
    string w = "ABXY";
 
    //find first letter (3 operations)
    ll a = press("A"), b = press("B"), x = press("X");
    ll f = 3;
    if (a) f = 0;
    else if (b) f = 1;
    else if (x) f = 2;
    s += w[f];
    w.erase(w.begin() + f);
 
    if (n == 1) return s;
 
    //find all letters until n-1 (n-2 operations)
    for (ll i =1; i<n-1; i++){
        p = s + w[0] + s + w[1] + w[0] + s + w[1] + w[1] + s + w[1] + w[2];
        x = press(p);
        if (x == i) s += w[2];
        else if (x == i+1) s += w[0];
        else s += w[1];
    }
 
    //find last letter (2 operations)
    a = press(s + w[0]), b = press(s + w[1]);
    if (a == b) s += w[2];
    else if (a > b) s += w[0];
    else s += w[1]; 
 
    return s;    
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...