#include<bits/stdc++.h>
using namespace std;
#define int long long
int col[152];
int n;
int query(int l,int r){
cout<<r-l+1<<" ";
for(int q=l;q<=r;q++){
cout<<q<<" ";
}
cout<<endl;
int hah;
cin>>hah;
return hah;
}
int solve(int l,int r){
bool udh[n+1];
int cnt=0;
memset(udh,false,sizeof udh);
for(int q=l;q<=r;q++){
if(udh[col[q]])continue;
cnt++;
udh[col[q]]=true;
}
return cnt;
}
signed main(){
cin>>n;
col[1]=1;
int cnt=2;
for(int q=2;q<=n;q++){
int l=1;
int r=q-1;
int pos=-1;
while(l<=r){
int mid=(l+r)/2;
int hah=query(mid,q);
if(hah==solve(mid,q-1)){
pos=mid;
l=mid+1;
}
else{
r=mid-1;
}
}
if(pos==-1){
col[q]=cnt;
cnt++;
}
else{
col[q]=col[pos];
}
}
cout<<0;
for(int q=1;q<=n;q++){
cout<<" "<<col[q];
}
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... |