Submission #1188379

#TimeUsernameProblemLanguageResultExecution timeMemory
1188379comxddddddCarnival (CEOI14_carnival)C++20
0 / 100
2 ms412 KiB
#include <bits/stdc++.h>
using namespace std;

int N;
vector<int> costume;

int q(const vector<int>& people) {
    if (people.size() == 1) return 1;
    cout << people.size();
    for (int p : people) cout << " " << p;
    cout << endl;
    int x;
    cin >> x;
    return x;
}

int main() {
    cin >> N;
    costume.resize(N + 1);
    vector<vector<int>> groups;
    for (int i = 1; i <= N; ++i) {
        int lo = 0, hi = groups.size() - 1;
        int group_id = -1;
        while (lo <= hi) {
            int mid = (lo + hi) / 2;
            vector<int> test = groups[mid];
            test.push_back(i);
            if (q(test) == q(groups[mid])) {
                group_id = mid;
                break;
            } else {
                hi = mid - 1;
            }
        }
        if (group_id != -1) {
            groups[group_id].push_back(i);
            costume[i] = group_id + 1;
        } else {
            groups.push_back({i});
            costume[i] = groups.size();
        }
    }
    cout << 0;
    for (int i = 1; i <= N; ++i) cout << " " << costume[i];
    cout << endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...