# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
493164 | aSSSd | 콤보 (IOI18_combo) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
//#pragma GCC optimize("O2,unroll-loops")
//#pragma GCC target("avx,avx2")
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;
#define forinc(x,a,b) for(int x=a;x<=b;x++)
string LET = "ABXY";
string guess_sequence(int n)
{
string ret = "";
if(press("AB"))
{
if(press("A")) ret += "A";
else ret += "B";
}
else
{
if(press("X")) ret += "X";
else ret += "Y";
}
if(n ==1 ) return ret;
string Char;
for(int i=0 ; i < 4 ; i++) if(LET[i] != ret[0]) Char.pb(LET[i]);
for(int i=1 ; i < n-1 ; i++)
{
string t = ret + Char[0] + ret + Char[1] + Char[0] + ret + Char[1] + Char[1] + ret +Char[1] + Char[2];
int val = press(t);
if(val == ret.size()) ret+=Char[2];
else if (val == ret.size() +1 ) ret+=Char[0];
else ret += Char[1];
}
if(ret.size()!= n)
{
int val =press(ret + Char[0]);
if(val == n) ret += Char[0];
else
{
val = press(ret + Char[1]);
if(val == n) ret+=Char[1];
else ret+=Char[2];
}
}
return ret;
}