제출 #1336564

#제출 시각아이디문제언어결과실행 시간메모리
1336564ayxanesedzade10콤보 (IOI18_combo)C++20
0 / 100
0 ms344 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
string guess_sequence(int N){
    string s="AB";
    int ed=press(s);
    char c;
    if(ed>0){
        s="A";
        ed=press(s);
        if(ed==1){s="A";c='A';}
        else{s="B";c='B';}
    }
    else{
        s="X";
        ed=press(s);
        if(ed==1){s="X";c='X';}
        else{s="Y";c='Y';}
    }
    char c1,c2,c3;
    if(c=='A'){c1='B';c2='X';c3='Y';}
    else if(c=='B'){c1='A';c2='X';c3='Y';}
    else if(c=='X'){c1='A';c2='B';c3='Y';}
    else {c1='A';c2='B';c3='X';}

    while(s.size()+2<=N){
        string s1=s;
        s1.pb(c1);s1.pb(c2);
        s1+=s;
        s1.pb(c1);s1.pb(c1);
        s1+=s;
        s1.pb(c1);s1.pb(c3);
        s1+=s;
        s1.pb(c2);s1.pb(c2);
        ed=press(s1);
        if(ed==s.size()){
            s.pb(c3);
        }
        else if(ed==s.size()+1) s.pb(c2);
        else s.pb(c1);
    }
    if(s.size()>1){
        string s1=s;
        s1.pb(c1);
        ed=press(s1);
        if(ed==s.size()+1) s.pb(c1);
        else{
            s1=s;s1.pb(c2);
            ed=press(s1);
            if(ed==s.size()+1) s.pb(c2);
            else s.pb(c3);
        }
    }
  //  cout<<s<<endl;
    return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...