제출 #1273039

#제출 시각아이디문제언어결과실행 시간메모리
1273039KluydQ콤보 (IOI18_combo)C++20
100 / 100
8 ms480 KiB
#include "combo.h"
#include <bits/stdc++.h>

using namespace std;

string guess_sequence( int N )
{
  if( N == 1 )
  {
    int x = press("A");
    if(x) return "A";
    x = press("B");
    if(x) return "B";
    x = press("X");
    if(x) return "X";
    return "Y";
  }
	int x = press("AB");
	string cur = "", pref = "";
	
	if( x >= 1 )
	{
		x = press("A");
		
		if(x) cur = "BXY", pref += 'A';
		else cur = "AXY", pref += 'B';
	}
	else
	{
		x = press("X");
		
		if(x) cur = "ABY", pref += 'X';
		else cur = "ABX", pref += 'Y';
	}
	for( int i = 2; i <= N - 1; i ++ )
	{
		string ask = "";
		
		ask += pref, ask += cur[0];
		ask += pref, ask += cur[1], ask += cur[2];
		ask += pref, ask += cur[1], ask += cur[1];
		ask += pref, ask += cur[1], ask += cur[0];
		
		x = press(ask) - i + 1;
		
		if( x == 2 ) pref += cur[1];
		if( x == 1 ) pref += cur[0];
		if( x == 0 ) pref += cur[2];
	}
	string ask = "";
	ask += pref, ask += cur[0];
	ask += pref, ask += cur[1];
	
	if( press(ask) == N )
	{
		ask = pref, ask += cur[0];
		
		if( press(ask) == N ) pref += cur[0];
		else pref += cur[1];
	}
	else pref += cur[2];
	
	return pref;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...