//####################
//Carnival
//####################
#include<bits/stdc++.h>
using namespace std;
int query(vector<int> party){
cout<<party.size()<<" ";
for(int v:party)cout<<v+1<<' ';
cout<<endl;
int re;cin>>re;
return re;
}
signed main(){
int n;cin>>n;
vector<int > chef;
for(int i = 0;i<n;i++){
vector<int> cop(chef);
cop.push_back(i);
if(query(cop)==cop.size())
chef.push_back(i);
}
vector<int> rep(n,-1);
for(int i = 0 ; i < chef.size();i++)
rep[chef[i]] = i;
for(int e = 0 ; e < n ; e++){
if(rep[e] ==-1){
int border=-1;
for(int b=9;b>=0;b--){
if(border+(1<<b)<chef.size()){
vector<int> act;
for(int i=0;i<=border+(1<<b);i++)act.push_back(chef[i]);
act.push_back(e);
if(query(act)==act.size())border+=(1<<b);
}
}
rep[e] = rep[chef[border+1]];
}
}
for(int i = 0 ; i < n ; i++){
if(rep[i]>=chef.size())return -1;
}
cout<<0<<" ";
for(int i = 0 ; i < n ; i++)
cout<<rep[i]+1<<' ';
cout<<endl;
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... |