Submission #1322773

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

using namespace std;

int n, lst, clr;
int c[155];

int ask(vector < int > v){
    cout << v.size() << ' ';
    for(int x : v) cout << x << ' ';
    cout << endl;
    int ret; cin >> ret; return ret;
}

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n;
    vector < int > v;
    for(int i = 1; i <= n; i++){
        v.push_back(i);
        if(ask(v) == lst + 1){
            lst++, c[i] = ++clr;
            continue;
        }
        v.pop_back();
        int l = 0, r = v.size();
        while(r - l > 1){
            int md = (l + r) / 2;
            vector < int > cur = {i};
            for(int i = 0; i < md; i++) cur.push_back(v[i]);
            if(ask(cur) < cur.size()) r = md;
            else l = md;
        }
        c[i] = c[v[l]];
    }
    cout << "0 ";
    for(int i = 1; i <= n; i++) cout << c[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...