제출 #82439

#제출 시각아이디문제언어결과실행 시간메모리
82439farukkastamonuda콤보 (IOI18_combo)C++14
5 / 100
2 ms280 KiB
#include "combo.h"
#include <bits/stdc++.h>
#define fi first
#define se second
#define lo long long 
#define inf 1000000009
#define md 1000000007
#define li 100005
#define mp make_pair
#define pb push_back
#define mid (start+end)/2
using namespace std;
int n;
string y,ana;
char ilk;
string guess_sequence(int N){
	ana.clear();
	ilk=' ';
	n=N;
	y="AB";
	if(press(y)>=1){
		y="A";
		if(press(y)>=1){
			ilk='A';
		}
		else ilk='B';
	}
	else{
		y='X';
		if(press(y)>=1){
			ilk='X';
		}
		else ilk='Y';
	}
	ana=ana+ilk;
	for(int i=2;i<=n-1;i++){
		string t=ana;
		int uz=i-1;
		if(ilk=='A'){
			t=t+'B';
			t=t+ana+'X'+'X';
			t=t+ana+'X'+'Y';
			t=t+ana+'X'+'B';
			int sonuc=press(t);
			if(sonuc==uz){
				ana=ana+'Y';
			}
			else if(sonuc==uz+1){
				ana=ana+'B';
			}
			else ana=ana+'X';
		}
		else if(ilk=='B'){
			t=t+'A';
			t=t+ana+'X'+'X';
			t=t+ana+'X'+'Y';
			t=t+ana+'X'+'A';
			int sonuc=press(t);
			if(sonuc==uz){
				ana=ana+'Y';
			}
			else if(sonuc==uz+1){
				ana=ana+'A';
			}
			else ana=ana+'X';
		}
		else if(ilk=='X'){
			t=t+'B';
			t=t+ana+'A'+'A';
			t=t+ana+'A'+'Y';
			t=t+ana+'A'+'B';
			int sonuc=press(t);
			if(sonuc==uz){
				ana=ana+'Y';
			}
			else if(sonuc==uz+1){
				ana=ana+'B';
			}
			else ana=ana+'A';
		}
		else if(ilk=='Y'){
			t=t+'B';
			t=t+ana+'A'+'A';
			t=t+ana+'A'+'X';
			t=t+ana+'A'+'B';
			int sonuc=press(t);
			if(sonuc==uz){
				ana=ana+'X';
			}
			else if(sonuc==uz+1){
				ana=ana+'B';
			}
			else ana=ana+'A';
		}
	}
	string g;
	g.clear();
	if(ilk=='A'){
		g=ana+'B'+ana+'X';
		int sonuc=press(g);
		if(sonuc==n-1){
			ana=ana+'Y';
			return ana;
		}
		g=ana+'B';
		sonuc=press(g);
		if(sonuc==n-1){
			ana=ana+'X';
			return ana;
		}
		ana=ana+'B';
		return ana;
	}
	//
	if(ilk=='B'){
		g=ana+'A'+ana+'X';
		int sonuc=press(g);
		if(sonuc==n-1){
			ana=ana+'Y';
			return ana;
		}
		g=ana+'A';
		sonuc=press(g);
		if(sonuc==n-1){
			ana=ana+'X';
			return ana;
		}
		ana=ana+'A';
		return ana;
	}
	//
	if(ilk=='X'){
		g=ana+'B'+ana+'A';
		int sonuc=press(g);
		if(sonuc==n-1){
			ana=ana+'Y';
			return ana;
		}
		g=ana+'B';
		sonuc=press(g);
		if(sonuc==n-1){
			ana=ana+'A';
			return ana;
		}
		ana=ana+'B';
		return ana;
	}
	if(ilk=='Y'){
		g=ana+'B'+ana+'X';
		int sonuc=press(g);
		if(sonuc==n-1){
			ana=ana+'A';
			return ana;
		}
		g=ana+'B';
		sonuc=press(g);
		if(sonuc==n-1){
			ana=ana+'X';
			return ana;
		}
		ana=ana+'B';
		return ana;
	}
}

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

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:96:9: warning: control reaches end of non-void function [-Wreturn-type]
   96 |  string g;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...