#include <climits>
#include <deque>
#include <functional>
#include <iostream>
#include <iterator>
#include <set>
using namespace std;
#define int long long
signed main () {
int N = 0;
cin >> N;
int free = 1;
vector <int> ans (N + 1);
vector <int> v;
for (int i = 1; i <= N; i++) {
cout << v.size() + 1 << ' ';
for (int& e : v)
cout << e << ' ';
cout << i << '\n';
cout.flush();
int res = 0;
cin >> res;
if (res == v.size() + 1) {
v.emplace_back (i);
ans[i] = free++;
} else if (res == v.size()) {
int L = 0, R = v.size() - 1;
int binans =0;
while (L <= R) {
int mid = (L + R) / 2;
cout << mid + 1 + 1 << '\n';
for (int j = 0; j <= mid; j++)
cout << v[j] << ' ';
cout << i << '\n';
cout.flush();
int res1 = 0;
cin >> res1;
if (res1 == mid + 1 + 1) {
L = mid + 1;
} else if (res1 == mid + 1) {
R = mid - 1;
binans = mid;
}
}
ans[i] = ans[v[binans]];
} else
exit (1);
}
cout << 0 << ' ';
for (int i = 1; i <= N; i++)
cout << ans[i] << ' ';
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... |