Submission #753761

#TimeUsernameProblemLanguageResultExecution timeMemory
753761vjudge1Carnival (CEOI14_carnival)C++17
100 / 100
14 ms2688 KiB
#include<bits/stdc++.h>

#define MaxN 100005

using namespace std;


int n;
vector<int> cLis[MaxN];
int ans[MaxN];


int main() {
    cin >> n;


    for(int c = 1; c <= n; ++c) cLis[c].clear();
    for(int i = 1; i <= n; ++i) ans[i] = -1;


    int cnt = 1;
    cLis[1].push_back(1);
    ans[1] = 1;
    for(int i = 2; i <= n; ++i) {
        int lo = 1, hi = cnt, pos = -1;
        while(lo <= hi) {
            int k = 1, mi = (lo+hi)/2;
            cout << mi-lo+1 + 1 << " " << i << " ";
            for(int c = lo; c <= mi; ++c) cout << cLis[c][0] << " ";
            cout << "\n";
            cin >> k;
            if (k > mi-lo+1) {
                lo = mi+1;
            }
            else {
                pos = mi;
                hi = mi-1;
            }
        }
        if (pos == -1) {
            ++cnt;
            cLis[cnt].push_back(i);
            ans[i] = cnt;
        }
        else {
            cLis[pos].push_back(i);
            ans[i] = pos;
        }
    }


    cout << "0 ";
    for(int i = 1; i <= n; ++i) cout << ans[i] << " ";
    cout << "\n";


    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...