Submission #1311453

#TimeUsernameProblemLanguageResultExecution timeMemory
1311453nataliaaCombo (IOI18_combo)C++20
97 / 100
9 ms632 KiB
#include "combo.h"
#include<bits/stdc++.h>
using namespace std;
string guess_sequence(int N) {
  int x;
  string s;
  char c='C';
  x = press("A");
  if(x==1) c='A';
  x = press("X");
  if(x==1) c = 'X';
  x = press("Y");
  if(x==1) c = 'Y';
  if(c=='C') c= 'B';
  s+=c;
  if(N==1)return s;
  string s1, s2, s3, s4;
  char c1, c2, c3, c4;
  if(c=='A'){
    s1 = "B"; s2 = "XX";s3 = "XY";s4 = "XB";
    c1 ='Y';c2 = 'B';c3 = 'X';
  }
  if(c=='B'){
    s1 = "A"; s2 = "XX";s3 = "XY";s4 = "XA";
    c1 ='Y';c2 = 'A';c3 = 'X';
  }
  if(c=='X'){
    s1 = "B"; s2 = "AA";s3 = "AY";s4 = "AB";
    c1 ='Y';c2 = 'B';c3 = 'A';
  }
  if(c=='Y'){
    s1 = "B"; s2 = "XX";s3 = "XA";s4 = "XB";
    c1 ='A';c2 = 'B';c3 = 'X';
  }
  for(int i = 1; i < N-1; i++){
    string st[4] = {s, s, s, s};
    st[0]+=s1;
    st[1]+=s2;
    st[2]+=s3;
    st[3]+=s4;
    x = press(st[0]+st[1]+st[2]+st[3]);
    if(x==i) s+=c1;
    else if(x==i+1) s+=c2;
    else if(x==i+2) s+=c3;
    else s+='A';
  }
  if(c=='A'){
    x = press(s+'B');
    if(x==N) s+='B';
    else {
        x = press(s+'X');
        if(x==N) s+='X';
        else s+='Y';
    }
  }
  if(c=='B'){
    x = press(s+'A');
    if(x==N) s+='A';
    else {
        x = press(s+'X');
        if(x==N) s+='X';
        else s+='Y';
    }
  }
  if(c=='X'){
    x = press(s+'B');
    if(x==N) s+='B';
    else {
        x = press(s+'A');
        if(x==N) s+='A';
        else s+='Y';
    }
  }
  if(c=='Y'){
    x = press(s+'B');
    if(x==N) s+='B';
    else {
        x = press(s+'X');
        if(x==N) s+='X';
        else s+='A';
    }
  }
  return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...