Submission #1174158

#TimeUsernameProblemLanguageResultExecution timeMemory
1174158nguyenkhangninh99Carnival (CEOI14_carnival)C++17
Compilation error
0 ms0 KiB

#include <bits/stdc++.h>

using namespace std;

#define int long long

/*
struct Seg {
    int l, r, id;

    bool operator<(const Seg &s) const {
        return r > s.r;
    }
};

int n;
vector<int> a, d;
vector<vector<Seg>> fiseg;

bool ok(int x) {
    vector<int> b = a;
    priority_queue<Seg> pq;

    for (int i = 1; i <= n; ++i) {
        for (auto &seg : segment[i]) pq.push(seg);
        int cur = 0;
        while (!pq.empty() && cur < x) {
            if (pq.empty()) break;
            Seg seg = pq.top();
            if (seg.r < i) return false;
            int transfer = min(x - cur, b[seg.id]);
            cur += transfer;
            b[seg.id] -= transfer;
            if (!b[seg.id]) pq.pop();
        }
    }
    return pq.empty();
}
*/
signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0); 
    
/*   cin >> n;
    a.assign(n + 1, 0);
    d.assign(n + 1, 0);
    fiseg.resize(n + 1);
    for (int i = 1; i <= n; i++) cin >> a[i];
    for (int i = 1; i <= n; i++) cin >> d[i];
    for (int i = 1; i <= n; ++i) {
        int l = max(1LL, i - d[i]);
        int r = min(n, i + d[i]);
        if (a[i]) segment[l].push_back({l, r, i});
    }
    
    int l = 0, r = 1e18, res = -1;
    while (l <= r) {
        int mid = (l + r) / 2;
        if(ok(mid)){
            res = mid;
            r = mid - 1;
        } else l = mid + 1;
    
    }
    cout << res;
*/
    int n; cin >> n;
    vector<vector<int>> a;
    a.push_back({1});

    for(int i = 2; i <= n; i++){
        int l = 0, r = int(a.size()) - 1, res = -1;
        while(l <= r){
            int mid = (l + r) / 2;
            cout << mid + 2 << " " << i << " ";
            for(int j = 0; j <= mid; j++) cout << a[j][0] << " ";
            
            cout << endl;
            int x; cin >> x;

            if(x == mid + 2) l = mid + 1;
            else{
                res = mid;
                r = mid - 1;
            }
        }
        if(res == -1) a.push_back({i});
        else a[res].push_back(i);
    }

    vector<int> res(n + 1);

    int id = 1;
    for(auto v: a){
        for(int j: v) res[j] = id;
        id++;
    }

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

Compilation message (stderr)

carnival.cpp: In function 'int main()':
carnival.cpp:6:13: error: expected primary-expression before 'long'
    6 | #define int long long
      |             ^~~~
carnival.cpp:73:24: note: in expansion of macro 'int'
   73 |         int l = 0, r = int(a.size()) - 1, res = -1;
      |                        ^~~
carnival.cpp:84:17: error: 'res' was not declared in this scope
   84 |                 res = mid;
      |                 ^~~
carnival.cpp:88:12: error: 'res' was not declared in this scope
   88 |         if(res == -1) a.push_back({i});
      |            ^~~