Submission #1180776

#TimeUsernameProblemLanguageResultExecution timeMemory
1180776vincentbucourt1Carnival (CEOI14_carnival)C++20
100 / 100
13 ms408 KiB
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 152;
int N;
int color[MAXN];

int query (int l, int r) {
    cout << (r - l + 1) << " ";
    for (int i = l; i <= r; i++) {
        cout << i+1 << " ";
    }
    cout << endl;
    int val;
    cin >> val;
    return val;
}


signed main() {
    cin >> N;
    fill(color, color+N, -1);
    int bigColor = 1;
    for (int i = 0; i < N-1; i++) {
        if (color[i] == -1) {
            color[i] = bigColor;
            bigColor++;
        }
        int hi = N-1;
        for (int len = (1 << 8); len > 0; len /= 2) {
            if (hi - len > i && query(i, hi-len) == query(i+1, hi-len)) {
                hi -= len;
            }
        }
        if (query(i+1, hi) == query(i, hi)) {
            color[hi] = color[i];
        }
    }
    if (color[N-1] == -1) {
        color[N-1] = bigColor;
        bigColor++;
    }
    cout << "0 ";
    for (int i = 0; i < N; i++) {
        cout << color[i] << " ";
    }
    cout << endl;
}
#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...