Submission #1213300

#TimeUsernameProblemLanguageResultExecution timeMemory
1213300Captain_GeorgiaCarnival (CEOI14_carnival)C++20
100 / 100
4 ms444 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int ask (vector<int> arr) {
	cout << arr.size();
	for (auto x : arr) cout << " " << x;
	cout << endl;
	int res;
	cin >> res;
	return res;
} 

int32_t main () {

	ios_base::sync_with_stdio(0); 
	cin.tie(0); 
	cout.tie(0); 

	int N;
	cin >> N;
	vector<int> dist, arr(N + 1, 0);
	arr[1] = 1;
	dist.push_back(1);
	for (int i = 2;i <= N;i ++) {
		int low = 0, high = dist.size();
		while (low < high) {
			int mid = (low + high) / 2;
			vector<int> tmp;
			for (int j = 0;j <= mid;j ++) tmp.push_back(dist[j]);
			tmp.push_back(i);
			if (ask(tmp) == tmp.size() - 1) high = mid;
			else low = mid + 1;
		}
		// cout << i << " " << high << endl;
		if (high == dist.size()) {
			arr[i] = dist.size() + 1;
			dist.push_back(i);
		} else {
			arr[i] = arr[dist[high]];
		}
	}
	for (auto x : arr) cout << x << " ";
	cout << endl;
}
#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...