# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
936952 | MuntherCarrot | Combo (IOI18_combo) | C++17 | 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 <bits/stdc++.h>
#include "combo.h"
using namespace std;
// int press(string s)
string guess_sequence(int N){
srand(time(69));
string ans;
int x = rand() % 4;
if(x == 1){
ans = "A";
while((int)ans.size() < N - 1){
string f = ans + "B" + ans + "XB" + ans + "XX" + ans + "XY";
// cout << f << endl;
int res = press(f);
if(res == (int)ans.size()){
ans += "Y";
}
else if(res == (int)ans.size() + 1){
ans += "B";
}
else{
ans += "X";
}
}
if(press(ans + "X") == N) ans += "X";
else if(press(ans + "Y") == N) ans += "Y";
else ans += "B";
}
else if(x == 2){
cout << "HERE" << endl;
ans = "B";
while((int)ans.size() < N - 1){
string f = ans + "A" + ans + "XA" + ans + "XX" + ans + "XY";
int res = press(f);
if(res == (int)ans.size()){
ans += "Y";
}
else if(res == (int)ans.size() + 1){
ans += "A";
}
else{
ans += "X";
}
}
// cout << ans << endl;
if(press(ans + "X") == N) ans += "X";
else if(press(ans + "Y") == N) ans += "Y";
else ans += "A";
}
else if(x == 3){
ans = "X";
while((int)ans.size() < N - 1){
string f = ans + "B" + ans + "AB" + ans + "AA" + ans + "AY";
int res = press(f);
if(res == (int)ans.size()){
ans += "Y";
}
else if(res == (int)ans.size() + 1){
ans += "B";
}
else{
ans += "A";
}
}
if(press(ans + "A") == N) ans += "A";
else if(press(ans + "Y") == N) ans += "Y";
else ans += "B";
}
else{
ans = "Y";
while((int)ans.size() < N - 1){
string f = ans + "B" + ans + "XB" + ans + "XX" + ans + "XA";
int res = press(f);
if(res == (int)ans.size()){
ans += "A";
}
else if(res == (int)ans.size() + 1){
ans += "B";
}
else{
ans += "X";
}
}
if(press(ans + "X") == N) ans += "X";
else if(press(ans + "A") == N) ans += "A";
else ans += "B";
}
return ans;
}