Submission #1203099

#TimeUsernameProblemLanguageResultExecution timeMemory
1203099SpyrosAlivSplit the Attractions (IOI19_split)C++20
7 / 100
44 ms13000 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

int n, a, b, c;
vector<vector<int>> g;
vector<int> ord;
vector<bool> vis;

void dfs(int node) {
    if (vis[node]) return;
    vis[node] = true;
    ord.push_back(node);
    for (auto next: g[node]) {
        dfs(next);
    }
}

vector<int> find_split(int N, int A, int B, int C, vector<int> p, vector<int> q) {
    n = N;
    a = A;
    b = B;
    c = C;
    g.resize(n+1);
    int m = p.size();
    for (int i = 0; i < m; i++) {
        p[i]++;
        q[i]++;
        g[p[i]].push_back(q[i]);
        g[q[i]].push_back(p[i]);
    }
    // line
    vis.assign(n+1, false);
    dfs(1);
    vector<int> val(n, 0);
    for (int i = 0; i < a; i++) val[ord[i] - 1] = 1;
    for (int i = a; i < a + b; i++) val[ord[i] - 1] = 2;
    for (int i = a + b; i < a + b + c; i++) val[ord[i] - 1] = 3;
    return val;
}
#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...