#include"bits/stdc++.h"
// #include"m.cpp"
using namespace std;
using ll=long long;
#define S second
#define F first
int qry(vector<int>x){
cout<<x.size();
for(int i:x)cout<<' '<<i;
cout<<endl;
int r;
cin>>r;
return r;
}
vector<int>rng(int l,int r){
vector<int>x;
for(int i=l;i<=r;i++)x.push_back(i);
return x;
}
vector<int>a;
set<int>s;
void rec(int l,int r){
int q=qry(rng(l,r));
if(q==1){
for(int i=l;i<=r;i++){
a[i]=*s.begin();
s.erase(s.begin());
}
return;
}
int m=(l+r)/2;
rec(l,m);
rec(m+1,r);
}
int main(){
cin.tie(0)->sync_with_stdio(0);
// remember(4095);
// cout<<compare(2214);
// int mxa=0,mxb=0;
// for(int i=0;i<4096;i++){
// remember(i);
// // cout<<i<<' '<<compare(0)<<endl;
// mxa=max(mxa,cn);
// for(int j=0;j<4096;j++){
// int g=compare(j);
// mxb=max(mxb,k);
// if(mxb==14)cout<<j<<' '<<i<<endl;
// }
// }
// cout<<mxb;
// remember(31);
// cout<<compare(63)<<endl;
// cout<<compare(31)<<endl;
// cout<<compare(30)<<endl;
// cout<<compare(32)<<endl;
int n;
cin>>n;
a.resize(n,0);
for(int i=1;i<=n;i++)s.insert(i);
rec(0,n-1);
cout<<0;
for(int i:a)cout<<' '<<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... |