#include <bits/stdc++.h>
using namespace std;
vector<int> u,a;
map<int,int> costume;
int n;
bool q(vector<int> &arr, int s, int e, int l){
s--;
cout << e-s+1 << ' ';
for(int i = s; i <= e-1; i++) cout << u[i] << ' ';
cout << l << ' ';
int b; cin >> b;
if(b==e-s+1) return true;
return false;
}
int main(){
cin >> n;
costume[1]=1;
u.emplace_back(1);
for(int i = 2; i <= n; i++){
if(q(u,1,u.size(),i)) u.emplace_back(i);
}int now = 1;
for(auto i: u){
costume[i]=now;
now++;
}for(int i = 1; i <= n; i++){
if(costume[i]==0){
int l = 1, r = u.size();
int b = 0;
while(l<r){
int mid = (l+r)/2;
if(mid<=0) break;
if(!q(u,l,mid,i)){
b = r;
if(l==r) break;
r = mid;
}else l = mid+1;
}costume[i]=costume[u[b-1]];
}
}cout << 0 << ' ';
for(int i = 1; i <= n; i++) cout << costume[i] << ' ';
}
# | 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... |