#include <bits/stdc++.h>
#include "split.h"
using namespace std;
using ll = int;
vector<int> find_split(int N, int a, int b, int c, vector<int> p, vector<int> q) {
// Subtask 1: line graph
ll M = p.size();
vector<vector<ll> > adjList(N);
for (ll i = 0; i < M; i++) {
adjList[p[i]].push_back(q[i]);
adjList[q[i]].push_back(p[i]);
}
ll startNode = 0;
for (ll i = 0; i < N; i++) {
if (adjList[i].size() == 1) {
startNode = i;
break;
}
}
ll currNode = startNode;
ll prvNode = -1;
ll ind = 0;
vector<ll> response(N, 0);
while (ind < N) {
if (ind < a) response[currNode] = 1;
else if (a <= ind && ind < a + b) response[currNode] = 2;
else response[currNode] = 3;
for (ll l: adjList[currNode]) {
if (l != prvNode) {
prvNode = currNode;
currNode = l;
break;
}
}
ind++;
}
return response;
}
| # | 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... |