Submission #448607

#TimeUsernameProblemLanguageResultExecution timeMemory
448607vanicCarnival (CEOI14_carnival)C++14
100 / 100
29 ms256 KiB
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>

using namespace std;

const int maxn=200;

int boja[maxn];

int binary(int x){
	int lo=1, hi=x, mid;
	int a, b;
	while(lo<hi){
		mid=(lo+hi)/2;
		cout << mid << ' ';
		for(int i=x-mid; i<x; i++){
			cout << i+1 << ' ';
		}
		cout << '\n';
		cout.flush();
		cin >> a;
		cout << mid+1 << ' ';
		for(int i=x-mid; i<=x; i++){
			cout << i+1 << ' ';
		}
		cout << '\n';
		cout.flush();
		cin >> b;
		if(a==b){
			hi=mid;
		}
		else{
			lo=mid+1;
		}
	}
	return boja[x-lo];
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n;
	cin >> n;
	int prosl=1;
	int sad;
	boja[0]=1;
	int nova=2;
	for(int i=1; i<n; i++){
		cout << i+1 << ' ';
		for(int j=0; j<=i; j++){
			cout << j+1 << ' ';
		}
		cout << '\n';
		cout.flush();
		cin >> sad;
		if(prosl==sad){
			boja[i]=binary(i);
		}
		else{
			boja[i]=nova;
			nova++;
		}
		prosl=sad;
	}
	cout << 0 << ' ';
	for(int i=0; i<n; i++){
		cout << boja[i] << ' ';
	}
	cout << '\n';
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...