#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
void solve() {
int N; cin >> N;
vector<int> answer(N + 1);
answer[1] = 1;
vector<int> distinct; distinct.push_back(1);
for(int i = 2; i <= N; ++i) {
int sz = (int)distinct.size() + 1;
cout << sz << " ";
for(int elem : distinct) {
cout << elem << " ";
}
cout << i << "\n"; cout << flush;
int col; cin >> col;
if(col == sz) {
answer[i] = sz;
distinct.push_back(i);
}
else {
int l = 1, r = sz - 1;
while(l < r) {
int m = (l + r) / 2;
cout << m - l + 2 << " ";
for(int j = l; j <= m; ++j) {
cout << distinct[j - 1] << " ";
}
cout << i << "\n"; cout << flush;
cin >> col;
if(col == m - l + 1) {
l = m + 1;
}
else {
r = m;
}
}
answer[i] = answer[distinct[l]];
}
}
cout << "0";
for(int i = 1; i <= N; ++i) {
cout << " " << answer[i];
}
cout << "\n"; cout << flush;
}
int main() {
// ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int tc = 1; //cin >> tc;
while(tc--) {
solve();
}
return 0;
}
# | 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... |