Submission #1188698

#TimeUsernameProblemLanguageResultExecution timeMemory
1188698njoopCarnival (CEOI14_carnival)C++20
100 / 100
3 ms428 KiB
#include <bits/stdc++.h>

using namespace std;

int n, ans[200], reff[200], c1, arr[200] = {1, 2, 1, 3, 3, 4, 2, 3, 5, 1, 3};

int ask(vector<int> v) {
    int c;
    cout << v.size() << " ";
    for(auto i: v) {
        cout << i << " ";
    }
    cout << endl;
    cin >> c;
    return c;
}

int main() {
    vector<int> v;
    cin >> n;
    for(int i=1; i<=n; i++) {
        v.clear();
        for(int j=1; j<=i; j++) v.push_back(j);
        int t = ask(v);
        if(t > c1) {
            c1++;
            ans[i] = t;
            reff[t] = i;
        } else {
            int l=1, r=c1;
            while(l < r) {
                int mid = (l+r)/2;
                v.clear();
                for(int j=1; j<=mid; j++) v.push_back(reff[j]);
                v.push_back(i);
                t = ask(v);
                if(t == mid+1) {
                    l = mid+1;
                } else {
                    r = mid;
                }
            }
            ans[i] = l;
        }
    }
    cout << 0;
    for(int i=1; i<=n; i++) {
        cout << " " << ans[i];
    }
    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...