Submission #1193425

#TimeUsernameProblemLanguageResultExecution timeMemory
1193425dong_gasSplit the Attractions (IOI19_split)C++20
Compilation error
0 ms0 KiB
{
    vector<pair<int, int>> t = {{_a, 1}, {_b, 2}, {_c, 3}};
    sort(all(t));
    a = t[0].first, b = t[1].first, c = t[2].first, n = _n, m = p.size();
    ds = disjoint_set(n);
    vector<pair<int, int>> edges;
    for (int i = 0; i < m; i++) {
        if (ds.Union(p[i], q[i])) tree[p[i]].push_back(q[i]), tree[q[i]].push_back(p[i]);
        else edges.push_back({p[i], q[i]});
        adj[p[i]].push_back(q[i]), adj[q[i]].push_back(p[i]);
    }
    dfs(0), B = cent = get_cent(0, -1, n);
    visited[cent] = 1;
    // for (int i=0;i<n;i++) ds.papa[i] = -1;
    // for (int i = 0; i < n; i++) cout << ds.sz[i] << endl;
    ds = disjoint_set(n);
    for (int v: adj[cent]) grouping(v, cent);
    for (int v: adj[cent]) {
        if (ds.sz[ds.Find(v)] >= a) A = v;
    }

    // cout << A << endl;
    for (auto& [u, v]: edges) {
        if (A != -1) break;
        if (u == cent || v == cent) continue;
        ds.Union(u, v);
        if (ds.sz[ds.Find(u)] >= a) A = ds.Find(u);
    }
    // cout << cent << ' ' << A << endl << endl;

    if (A == -1) return vector<int>(n, 0);
    res.resize(n, 3);
    go(A);  // A랑 같은 ds인 놈들만 탐색
    visited[cent] = 0;
    gogo(B);
    // for (int i = 0; i < n; i++) cout << i << ' ' << res[i] << endl;
    for (int i = 0; i < n; i++) res[i] = t[res[i] - 1].second;
    return res;
}

Compilation message (stderr)

split.cpp:1:1: error: expected unqualified-id before '{' token
    1 | {
      | ^