# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
441094 | beferith | Combo (IOI18_combo) | C++14 | 38 ms | 680 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>
using namespace std;
string guess_sequence(int N){
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
vector<string> chr = {"A","B","X","Y"};
string curr = "";
for(int i=0;i<N;i++){
shuffle(chr.begin(),chr.end(),rng);
if(i == 0){
int half = press("AB");
if(half == 0){
int quad = press("X");
if(quad){
curr += "X";
}else{
curr += "Y";
}
}else{
int quad = press("A");
if(quad){
curr += "A";
}else{
curr += "B";
}
}
chr.erase(find(chr.begin(),chr.end(),curr));
}else if(i == N-1){
bool found = false;
for(int j=0;j<chr.size()-1;j++){
if(press(curr + chr[j]) == i+1){
curr += chr[j];
found = true;
break;
}
}
if(!found){
curr += chr[chr.size()-1];
}
}else{
string ask = (curr+chr[0]) + (curr+chr[1]+chr[0]) + (curr+chr[1]+chr[1]) + (curr+chr[1]+chr[2]);
int query = press(ask);
if(query == i){
curr += chr[2];
}else if(query == i+2){
curr += chr[1];
}else{
curr += chr[0];
}
}
}
return curr;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |