Submission #1247765

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

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

int main(){
	int n; cin >> n;
	vector<int> clr(n + 1);
	clr[1] = 1;
	vector<int> v = {1};
	for(int i = 2; i <= n; i ++){
		int low = 1, high = v.size(), ans = -1;
		while(low <= high){
			int mid = (low + high) / 2;
			vector<int> t = v;
			t.resize(mid);
			t.push_back(i);
			int a = ask(t);
			if(a == mid + 1){
				low = mid + 1;
			}
			else{
				ans = v[mid - 1];
				high = mid - 1;
			}
		}
		if(ans == -1){
			v.push_back(i);
			clr[i] = v.size();
		}
		else{
			clr[i] = ans;
		}
	}
	cout << "0 ";
	for(int i = 1; i <= n; i ++){
		cout << clr[i] << " ";
	} cout << endl;
	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...