#include <bits/stdc++.h>
#define int long long
#define pb push_back
#define fs first
#define sc second
using namespace std;
signed main() {
int n;
cin >> n;
int col = 0;
int ans[n + 1];
vector<int> v;
for (int i = 1; i <= n; i++) {
cout << v.size() + 1 << " ";
for (auto u : v) cout << u << " ";
cout << i << endl;
cout.flush();
int res;
cin >> res;
if (res == v.size() + 1) {
v.pb(i);
col++;
ans[i] = col;
continue;
}
int l = 0, r = v.size() - 1, anss = -1;
while (l <= r) {
int mid = (l + r) / 2;
cout << mid + 2 << " ";
for (int j = 0; j <= mid; j++) cout << v[j] << " ";
cout << i << endl;
cout.flush();
int ress;
cin >> ress;
if (ress == mid + 2) {
l = mid + 1;
} else {
anss = mid;
r = mid - 1;
}
}
ans[i] = ans[v[anss]];
}
cout << 0 << " ";
for (int i = 1; i <= n; i++) cout << ans[i] << " ";
cout << endl;
cout.flush();
}
# | 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... |