#include <bits/stdc++.h>
using namespace std;
void ask(vector<int> a){
cout << a.size() << ' ';
for (int i : a){
cout << i << ' ';
}
cout << endl;
}
vector<int> ans(151);
int cnt = 1;
void dp(vector<int> a, int c){
/*cout << "PEDRO::::" << endl;
for (int i = 0; i < a.size(); i++){
cout << a[i] << ' ';
}
cout << endl;
cout << c << endl;*/
if (c == 1){
for (int i : a){
ans[i] = cnt;
}
cnt++;
return;
}
int distintos = 0;
vector<int> choosing;
vector<int> bastardos;
for (int i = 0; i < c / 2; i++){
choosing.push_back(a[i]);
}
/*for (int i : choosing){
cout << i << ' ';
}
cout << endl;
cout << "nigger << endl" << endl;*/
for (int i = c / 2; i < a.size(); i++){
choosing.push_back(a[i]);
ask(choosing);
cin >> distintos;
choosing.pop_back();
if(distintos <= c / 2){
choosing.push_back(a[i]);
}else bastardos.push_back(a[i]);
}
dp(choosing, c / 2);
dp(bastardos, (c + 1) / 2);
}
int main(){
int n; cin >> n;
vector<int> a;
for (int i = 1; i <= n; i++){
a.push_back(i);
}
ask(a);
int c = 0;
cin >> c;
dp(a, c);
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... |