# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
110941 | CodeKracker | 콤보 (IOI18_combo) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "combo.h"
#include<bits/stdc++.h>
#define FOR(i,a,b) for (int i = a; i < b; i++)
#define FORD(i,a,b) for (int i = a; i >= b; i--)
using namespace std;
char gf(){
int c = press("AB");
if(c > 0){
int a = press("A");
if(a){
return 'A';
}else{
return 'B';
}
}else{
int x = press("X");
if(x){
return 'X';
}else{
return 'Y';
}
}
}
char gl(string ans,vector<char> vec){
int c = press(ans+vec[0]);
if(c == ans.length()+1){
return vec[0];
}
c = press(ans+vec[1]);
if(c == ans.length()+1){
return vec[1];
}
return vec[2];
}
std::string guess_sequence(int n) {
char f = gf();
vector<char> rem;
rem.push_back('A');
rem.push_back('B');
rem.push_back('X');
rem.push_back('Y');
rem.erase(f);
string ans = "";
ans += f;
FOR(i,1,n-1){
string cur = ans+rem[0]+ans+rem[1]+rem[0]+ans+rem[1]+rem[1]+ans+rem[1]+rem[2];
int c = press(cur);
if(c == ans.length()){
ans += rem[2];
}else if(c == ans.length()+1){
ans += rem[0];
}else{
ans += rem[1];
}
}
char l = gl(ans,rem);
ans += l;
return ans;
}