Submission #1172497

#TimeUsernameProblemLanguageResultExecution timeMemory
1172497lnsuynCombo (IOI18_combo)C++20
100 / 100
6 ms484 KiB

#include<bits/stdc++.h>
#include "combo.h"
using namespace std;

string guess_sequence(int N){
	string s="XY";
	int r=press(s);
	if (r){
		s="X";
		r=press(s);
		if (!r){
			s="Y";
		}
	}else{
		s="A";
		r=press(s);		
		if (!r){
			s="B";
		}		
	}
	int n=1;
	string s3="ABXY";
	int st;
	for (int i=0; i<4; i++){
		if (s3[i]==s[0]){
			st=i;
			break;
		} 
	}
	while (n<N-1){
		for (int i=0; i<4; i++){
			if (i!=st){
				for (int j=i+1; j<4; j++){
					if (j!=st){
						int k=6-st-i-j;
						string s2="";
						s2+=s;
						s2+=s3[i];
						s2+=s;
						s2+=s3[j];
						s2+=s3[i];
						s2+=s;
						s2+=s3[j];
						s2+=s3[j];
						s2+=s;
						s2+=s3[j];
						s2+=s3[k];		
						int r=press(s2);
						if (r==n){
							s+=s3[k];
						}else if(r==n+1){
							s+=s3[i];							
						}else{
							s+=s3[j];														
						}
						n++;
						break;	
					}
				}
				break;
			}
		}
	}
	if (n==N-1){
		int i, j;
		for (i=0; i<4; i++){
			if (i!=st){
				string s2="";
				s2+=s;
				s2+=s3[i];
				int r=press(s2);
				if (r==n+1){
					s+=s3[i];
					return s;
				}
				break;
			}		
		}
		for (j=i+1; j<4; j++){
			if (j!=st){
				string s2="";
				s2+=s;
				s2+=s3[j];
				int r=press(s2);
				if (r==n+1){
					s+=s3[j];
					return s;
				}
				break;
			}		
		}		
		s+=s3[6-st-i-j];
	}
	return s;
} 
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...