Submission #1210594

#TimeUsernameProblemLanguageResultExecution timeMemory
1210594jadevineCarnival (CEOI14_carnival)C++20
0 / 100
1 ms408 KiB
#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 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...