#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cout << flush;
cin>> n;
vector<vector<int>> v(1,vector<int>(1));
v[0][0]=1;
for(int i = 1; i < n; i++){
int l = 0, r = v.size()-1;
bool ok=0;
cout << v.size()+1 << ' ' << i+1 << ' ';
for(int j = 0; j < v.size(); j++){
cout << v[j][0] << ' ';
}
cout << endl;
int x;
cin>> x;
if(x==v.size()+1){
v.push_back(vector<int>(1));
v[v.size()-1][0]=i+1;
continue;
}
while(l <= r){
int mid=l+(r-l)/2;
cout << (mid-l+2) << ' ' << i+1 << ' ';
for(int j = l; j <= mid; j++){
cout << v[j][0] << ' ';
}
cout << endl;
int x;
cin>> x;
if(x==(mid-l+2)){
l=mid+1;
}else{
r=mid-1;
}
}
//cout << "encontrado en " << l << '\n';
v[l].push_back(i+1);
}
vector<int> ans(n,0);
for(int i = 0; i < v.size(); i++){
//cout << i << ' ';
for(int j = 0; j < v[i].size(); j++){
//cout << v[i][j] << ' ';
ans[v[i][j]-1]=i+1;
}
//cout << endl;
}
cout << 0 << ' ';
for(auto i : ans){
cout << 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... |