#include <bits/stdc++.h>
using namespace std;
//const int mod = 998244353;
#define int long long
const long long inf = 5e18;
void solve() {
int n;
cin >> n;
vector<int> ans(n+1, 0), v;
for(int i = 1; i <= n; i ++ ) v.push_back(i);
int c = -1;
for(int i = n; i >= 1; i -- ) {
cout << v.size() << ' ';
for(int i : v)cout << i << ' ';
cout << endl;
int x;
cin >> x;
if(c == -1) c = x;
if(c != x) ans[i+1] = c--;
v.pop_back();
};
ans[1] = 1;
v.push_back(0);
for(int i = 1; i <= n; i ++ )
if(ans[i])v.push_back(i);
function<int(int ,int, int) > dc = [&](int l,int r,int x) {
if(l == r) return ans[v[l]];
int m = (l+r) >> 1;
int lf = m-l+1;
vector<int> ask(1,x);
for(int i = l; i <= m; i ++ ) ask.push_back(v[i]);
cout << ask.size() << ' ';
for(int &i : ask)cout << i << ' ';
cout << endl;
int an;cin >> an;
if(an != lf) return dc(m+1, r, x);
return dc(l, m, x);
};
for(int i = 1; i <= n; i ++ ) {
if(ans[i])continue;
ans[i] = dc(1, v.size(), i);
};
for(int i : ans)cout << i << ' ';
cout << endl;
};
signed main() {
//ios_base::sync_with_stdio(false);
//cin.tie(nullptr); cout.tie(nullptr);
int tt = 1;
//cin >> tt;
while(tt--) {
solve();
};
};
# | 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... |