#include<bits/stdc++.h>
using namespace std;
int n,c,vals[155],a[155],ans[155];
int ask(vector<int>v,int i=-1){
if(i!=-1) v.push_back(i);
cout<<v.size()<<' ';
for(int i:v) cout<<i<<' ';
cout<<endl;
int _;
cin>>_;
return _;
}
vector<int> cv(int l,int r){
vector<int>_;
for(int i=l;i<=r;i++) _.push_back(i);
return _;
}
int fnd(int i){
vector<int>_;
for(int i=1;i<=c;i++) _.push_back(vals[i]);
while(_.size()>1){
vector<int>_2,_3;
for(int i=0;i<_.size()/2;i++){
_2.push_back(_[i]);
}
for(int i=_.size()/2;i<_.size();i++){
_3.push_back(_[i]);
}
if(ask(_2,i)>_2.size()){
_=_3;
}
else{
_=_2;
}
}
return _[0];
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
a[i]=ask(cv(1,i));
if(a[i]!=a[i-1]){
vals[a[i]]=i;
ans[i]=a[i];
}
c=a[i];
}
for(int i=1;i<=n;i++){
if(!ans[i]){
ans[i]=fnd(i);
}
}
cout<<0<<' ';
for(int i=1;i<=n;i++){
cout<<ans[i]<<' ';
}
cout<<endl;
}
# | 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... |