#include <iostream>
#include <vector>
using namespace std;
int main(){
int N;
cin >> N;
vector<int> sol(N+1);
cout<<2<<' '<<1<<' '<<2<<endl;
int res;
cin >> res;
vector<int> unique;
if (res == 2){
sol[1] = 1;
sol[2] = 2;
unique.push_back(1);
unique.push_back(2);
}else{
sol[1] = 1;
sol[2] = 1;
unique.push_back(1);
}
vector<int> people;
int num = 2;
people.push_back(1);
people.push_back(2);
int memo = res;
for (int i = 3; i <= N; ++i){
num++;
cout<<unique.size()+1<<' ';
for (int in: unique){
cout<<in<<' ';
}
cout<<i<<' ';
cout<<endl;
cin >> res;
if (res > unique.size()){
sol[i] = res;
unique.push_back(i);
}else{
int l = 0;
int r = i-1;
while (l < r){
//cout<<"l "<<l<<" r "<<r<<endl;
int m = (l+r)/2;
cout<<m-l+2<<' ';
for (int j = l; j <= m; ++j){
cout<<unique[j]<<' ';
}
cout<<i<<' ';
cout<<endl;
cin >> res;
if (res == m-l+2){
l = m+1;
}else{
r = m-1;
}
}
sol[i] = sol[unique[l]];
}
}
cout<<0<<' ';
for (int i = 1; i <= N; ++i){
cout<<sol[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... |