#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |