Submission #169970

#TimeUsernameProblemLanguageResultExecution timeMemory
169970nandonathanielCombo (IOI18_combo)C++14
100 / 100
45 ms608 KiB
#include "combo.h"
#include<bits/stdc++.h>
using namespace std;
 
string guess_sequence(int N) {
	string p = "";
	int ask=press("AB");
	if(ask>0){
		ask=press("A");
		if(ask==1)p="A";
		else p="B";
	}
	else{
		ask=press("X");
		if(ask==1)p="X";
		else p="Y";
	}
	if(N==1)return p;
	vector<string> bukan;
	if("A"!=p)bukan.push_back("A");
	if("B"!=p)bukan.push_back("B");
	if("X"!=p)bukan.push_back("X");
	if("Y"!=p)bukan.push_back("Y");
	for(int i=2;i<=N-1;i++){
		string tebak=p+bukan[1]+bukan[1]+p+bukan[2]+bukan[0]+p+bukan[2]+bukan[1];
		ask=press(tebak);
		if(ask==i-1)p+=bukan[0];
		else if(ask==i){
			tebak=p+bukan[1]+bukan[0];
			ask=press(tebak);
			if(ask==i-1)p=p+bukan[2]+bukan[2];
			else if(ask==i)p=p+bukan[1]+bukan[2];
			else p=p+bukan[1]+bukan[0];
			i++;
		}
		else{
			tebak=p+bukan[2]+bukan[0];
			ask=press(tebak);
			if(ask==i-1)p=p+bukan[1]+bukan[1];
			else if(ask==i)p=p+bukan[2]+bukan[1];
			else p=p+bukan[2]+bukan[0];
			i++;
		}
	}
	if(p.length()<N){
		bool ada=false;
		for(int i=0;i<2;i++){
			ask=press(p+bukan[i]);
			if(ask==N){
				p=p+bukan[i];
				ada=true;
				break;
			}
		}
		if(!ada)p=p+bukan[2];
	}
	return p;
}

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:45:15: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   45 |  if(p.length()<N){
      |     ~~~~~~~~~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...