Submission #1180682

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

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

int query (int i, int l, int r) {
    cout << (r-l+1+(i != l)) << " ";
    if (i != l) {
        cout << i+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++;
        }
        if (query(i+1, i+1, N-1) == query(i, i, N-1)) {
            int lo = i, hi = N-1;
            while (hi - lo > 1) {
                int mid = max(i+1, lo + (hi - lo) / 2);
                if (query(max(i+1, lo), max(i+1, lo), mid) == query(i, max(i+1, lo), mid)) {
                    hi = mid;
                }
                else {
                    lo = mid;
                }
            }
            cerr << hi << endl;
            color[hi] = color[i];
        }
    }
    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...