#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |