#include <bits/stdc++.h>
using namespace std;
int query(const vector<int>& group) {
cout << group.size();
for (int person : group) {
cout << " " << person;
}
cout << endl;
cout.flush();
int result;
cin >> result;
return result;
}
int main() {
int N;
cin >> N;
vector<int> costume_id(N + 1, 0);
vector<int> representatives;
int next_costume = 1;
for (int i = 1; i <= N; ++i) {
int matched_costume = 0;
int lo = 0, hi = representatives.size() - 1;
while (lo <= hi) {
int mid = (lo + hi) / 2;
vector<int> group = {i, representatives[mid]};
int res = query(group);
if (res == 1) {
matched_costume = costume_id[representatives[mid]];
break;
} else {
hi = mid - 1;
}
}
if (matched_costume != 0) {
costume_id[i] = matched_costume;
} else {
costume_id[i] = next_costume++;
representatives.push_back(i);
}
}
cout << 0;
for (int i = 1; i <= N; ++i) {
cout << " " << costume_id[i];
}
cout << endl;
cout.flush();
return 0;
}
# | 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... |