| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1338180 | Johan | 콤보 (IOI18_combo) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;
string guess_sequence(int n) {
string s = "";
if(n == 1){
for(int i = 0; i < v.size() - 1; i++){
if(press(s + v[i])){
s += v[i];
break;
}
}
if(!s.size())s += v.back();
}
s = "AB";
if(press(s) == 0){
if(press("X") == 0)
s = "Y";
else
s = "X";
}
else {
if(press("A") == 0)
s = "B";
else
s = "A";
}
vector < char > vv;
for(char c : v){
if(c != s[0])
vv.push_back(c);
}
if(n == 1){
return s;
}
v = vv;
while(s.size() <= n - 2){
string cur = "";
cur += (s + v[0]);
cur += (s + v[1] + v[0]);
cur += (s + v[1] + v[1]);
cur += (s + v[1] + v[2]);
int g = press(cur);
if(g == s.size()){
s += v[2];
}
else if(g == s.size() + 1){
s += v[0];
}
else {
s += v[1];
}
}
string cur = "";
cur += (s + v[0]);
cur += (s + v[1]);
if(press(cur) == s.size()){
cur.clear();
cur += (s + v[2]);
}
else {
cur.clear();
if(press(s + v[0]) == s.size())
cur += (s + v[1]);
else
cur += (s + v[0]);
}
// cout << cur << endl;
return cur;
}