#include<bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define rep(i,a,b) for(int i=a;i<=b;i++)
const int N=2e6;
int ans[N];
vector<int> vec;
void que(int idx){
cout<<vec.size()+1<<" ";
for(auto x:vec) cout<<x<<" ";
cout<<idx<<endl;
cout.flush();
}
int binary(int idx){
int l=0,r=vec.size()-1,res=-1;
while(l<=r){
int mid=(l+r)/2;
cout<<mid-l+2<<" ";
for(int i=l;i<=mid;i++) cout<<vec[i]<<" ";
cout<<idx<<endl;
cout.flush();
int raod;
cin>>raod;
if(raod==mid-l+2){
l=mid+1;
}else{
res=mid;
r=mid-1;
}
}
return ans[vec[res]];
}
signed main(){
int n;
cin>>n;
vec.pb(1);
ans[1]=1;
rep(i,2,n){
que(i);
int raod;
cin>>raod;
if(raod==vec.size()+1){
vec.pb(i);
ans[i]=vec.size();
}else{
ans[i]=binary(i);
}
}
cout<<0<<" ";
rep(i,1,n) cout<<ans[i]<<" ";
cout<<endl;
cout.flush();
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... |