# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
936952 | MuntherCarrot | 콤보 (IOI18_combo) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
}