제출 #988902

#제출 시각아이디문제언어결과실행 시간메모리
988902lo0kerCombo (IOI18_combo)C++17
100 / 100
19 ms2128 KiB
#include "combo.h"
#include <bits/stdc++.h>

using namespace std;


string guess_sequence(int n)
{
	if (n == 1)
	{
		if (press("A") == 1)
			return "A";
 
		if (press("B") == 1)
			return "B";
 
		if (press("X") == 1)
			return "X";
 
		return "Y";
	}
 
	string s;
 
	int k = press("AB");
	if (k > 0)
	{
		if (press("A") == 1)
			s = "A";
		else
			s = "B";
	}
	else
	{
		if (press("X") == 1)
			s = "X";
		else
			s = "Y";
	}
 
	string c = "ABXY";
	c.erase(find(c.begin(), c.end(), s[0]));
 
	while (s.size() < n - 1)
	{
		string q = s + c[1] + s + c[2] + c[0] + s + c[2] + c[1] + s + c[2] + c[2];
		s += c[press(q) - s.size()];
	}
 
	if (press(s + c[0]) == n)
		s += c[0];
	else if (press(s + c[1]) == n)
		s += c[1];
	else
		s += c[2];
 
	return s;
}

컴파일 시 표준 에러 (stderr) 메시지

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:44:18: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   44 |  while (s.size() < n - 1)
      |         ~~~~~~~~~^~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...