#include<bits/stdc++.h>
using namespace std;
const int N=151;
vector<int> a;
int cnt,ans[N],x[N][N];
int query(const vector<int>&p){
cout<<p.size()<<endl;
for(int i=0;i<p.size();i++){
cout<<p[i]<<" ";
}
int tt;
cin>>tt;
return tt;
}
void solve(int n){
int l=0,r=a.size();
while(l<r){
int mid=(l+r)/2;
vector<int> c;
for(int j=l;j<mid;j++){
c.push_back(a[j]);
}
int ab;
if(c.size()==1) ab=1;
else ab=query(c);
c.push_back(n);
if(query(c)>ab){
l=mid+1;
}
else{
r=mid;
}
}
if(l>a.size()){
a.push_back(n);
cnt++;
ans[n]=cnt;
}
else{
ans[n]=ans[a[l]];
}
}
int main(){
int n;
cin>>n;
a.push_back(1);
ans[1]=1;
for(int t=2;t<=n;t++) solve(t);
cout<<0<<" ";
for(int t=1;t<=n;t++){
cout<<ans[t]<<" ";
}
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... |