제출 #849282

#제출 시각아이디문제언어결과실행 시간메모리
849282JoksimKaktus콤보 (IOI18_combo)C++17
0 / 100
1 ms344 KiB
#include <bits/stdc++.h>
#include "combo.h"

using namespace std;
#define ll long long;

string guess_sequence(int N){
    string s = "";
    vector <string> s0(4);
    s0[0] = "A";s0[1] = "B";s0[2] = "X";s0[3] = "Y";
    vector <string> v(3);
    /*
    for(int i = 0;i < 3;i++){
        if(press(s+s0[i]) == 1){
            s += s0[i];
            int ind = 0;
            for(int j = 0;j < 4;j++){
                if(j == i){
                    continue;
                }
                v[ind] = s0[j];
                ind++;
            }
            break;
        }
    }
     */
    int lenght = 1;
    int pocetak = press("AB");
    if(pocetak == 1){
        pocetak = press("A");
        if(pocetak == 1){
            s += "A";
            v[0] = "B";
            v[1] = "X";
            v[2] = "Y";
        } else{
            s += "B";
            v[0] = "A";
            v[1] = "X";
            v[2] = "Y";
        }
    }else if(pocetak == 2){
        s += "AB";
        lenght = 2;
    }else{
        pocetak = press("X");
        if(pocetak == 1){
            s += "X";
            v[0] = "A";
            v[1] = "B";
            v[2] = "Y";
        }else{
            s += "Y";
            v[0] = "A";
            v[1] = "X";
            v[2] = "X";
        }
    }
    string p = "";
    while(lenght < N-1){
        p = "";
        p += s + v[0];
        for (int j = 0; j < 3; ++j)
            p += s + v[1] + v[j];
        int k = press(p);
        if(k == lenght){
            s += v[2];
            lenght++;
        }else if(k == lenght + 1){
            s += v[0];
            lenght++;
        }else if(k == lenght + 2){
            s += v[1];
            lenght++;
        }
    }
  if((int)s.size() == N){
    return s;
  }
  bool found = false;
    for(int i = 0;i < 2;i++){
        if(press(s+v[i]) > lenght){
            s += v[i];
          found = true;
            break;
        }
    }
  if(!found){
    s+= v[2];
  }
    return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...