#include <bits/stdc++.h>
using namespace std;
int ask(vector<int>&v){
cout << v.size() << " ";
for(int i : v)cout << i << ' ';
cout << endl;
int ans;
cin >> ans;
return ans;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector<int>colors, temp, res(n + 1);
for(int i = 1;i <= n;++i){
temp = colors;
temp.push_back(i);
if(ask(temp) > (int)colors.size()){
colors.push_back(i);
res[i] = colors.size();
}
}
int sz = colors.size();
for(int i = 1;i <= n;++i){
if(res[i])continue;
int l = 0, r = sz - 1, ans = sz - 1;
while(l <= r){
int mid = (l + r) / 2;
temp.clear();
temp.push_back(i);
for(int j = 0;j <= mid;++j){
temp.push_back(colors[j]);
}
if(ask(temp) != (int)temp.size()){
ans = mid;
r = mid - 1;
}
else{
l = mid + 1;
}
}
res[i] = colors[ans];
}
cout << "0 ";
for(int i = 1;i <= n;++i){
cout << res[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... |