Submission #1247773

#TimeUsernameProblemLanguageResultExecution timeMemory
1247773ezdpCarnival (CEOI14_carnival)C++20
0 / 100
0 ms416 KiB
#include<bits/stdc++.h>
using namespace std;

int count_different(const vector<int> &v){
	cout << v.size() << " ";
	for(auto x : v){
		cout << x << " ";
	} cout << endl;
	int r; cin >> r; return r;
}

void submit_colours(const vector<int> &v){
	cout << "0 ";
	for(auto x : v){
		cout << x << " ";
	} cout << endl;
}

void play(int n){
	vector<int> clrs(n);
	clrs[0] = 1;
	vector<int> vec = {0};
	for(int i = 1; i < n; i ++){
		int low = 0, high = vec.size() - 1, ans = vec.size() + 1;
		while(low <= high){
			int mid = (low + high) / 2;
			vector<int> ask;
			for(int i = 0; i <= mid; i ++){
				ask.push_back(vec[i]);
			}
			ask.push_back(i);
			if(count_different(ask) == ask.size()){
				low = mid + 1;
			}
			else{
				ans = clrs[vec[mid]];
				high = mid - 1;
			}
		}
		clrs[i] = ans;
		if(ans == vec.size() + 1){
			vec.push_back(i);
		}
	}
	submit_colours(clrs);
}

int main(){
	int n; cin >> n; play(n);
}
#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...