Submission #1356595

#TimeUsernameProblemLanguageResultExecution timeMemory
1356595AgageldiCarnival (CEOI14_carnival)C++20
100 / 100
2 ms416 KiB
#include <bits/stdc++.h>
using namespace std;

#define N 500005

const int inf = INT_MAX;
const int M = 998244353;

// mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

int tc = 1, n, a[N];
vector <int> v;

signed main() {
    // ios::sync_with_stdio(0);cin.tie(0);
    cin >> n;
    int cnt = 0;
    for(int i = 1; i <= n; i++) {
        v.push_back(i);
        cout << (int)v.size() << " ";
        for(auto j : v) {
            cout << j << " ";
        }
        cout << endl;
        int x = 0;
        cin >> x;
        if((int)v.size() == x) {
            a[i] = ++cnt;
        }
        else {
            v.pop_back();
            int l = 0, r = (int)v.size() - 1, jog = 0;
            while(l <= r) {
                int mid = (l + r) / 2;
                vector <int> h = {};
                for(int j = 0; j <= mid; j++) {
                    h.push_back(v[j]);
                }
                h.push_back(i);
                cout << (int)h.size() << " ";
                for(auto j : h) {
                    cout << j << " ";
                }
                cout << endl;
                int p = 0;
                cin >> p;
                if(p == (int)h.size()) {
                    l = mid + 1;
                }
                else {
                    jog = mid;
                    r = mid - 1;
                }
            }
            a[i] = a[v[jog]];
        }
    }
    cout << "0 ";
    for(int i = 1; i <= n; i++) {
        cout << a[i] << " ";
    }
    cout << endl;
    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...