Submission #1220179

#TimeUsernameProblemLanguageResultExecution timeMemory
1220179takoshanavaCarnival (CEOI14_carnival)C++20
100 / 100
3 ms408 KiB
#include <bits/stdc++.h>
#define int long long
#define pb push_back
#define fs first
#define sc second
using namespace std;

signed main() {
    int n;
    cin >> n;
    int col = 0;
    int ans[n + 1];
    
    vector<int> v;
    for (int i = 1; i <= n; i++) {
        cout << v.size() + 1 << " ";
        for (auto u : v) cout << u << " ";
        cout << i << endl;
        cout.flush();

        int res;
        cin >> res;

        if (res == v.size() + 1) {
            v.pb(i);
            col++;
            ans[i] = col;
            continue;
        }

        int l = 0, r = v.size() - 1, anss = -1;
        while (l <= r) {
            int mid = (l + r) / 2;

            cout << mid + 2 << " ";
            for (int j = 0; j <= mid; j++) cout << v[j] << " ";
            cout << i << endl;
            cout.flush();

            int ress;
            cin >> ress;

            if (ress == mid + 2) {
                l = mid + 1;
            } else {
                anss = mid;
                r = mid - 1;
            }
        }

        ans[i] = ans[v[anss]];
    }

    cout << 0 << " ";
    for (int i = 1; i <= n; i++) cout << ans[i] << " ";
    cout << endl;
    cout.flush();
}
#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...