#include "stations.h"
#include <iostream>
#include <bits/stdc++.h>
#define fi first
#define se second
using namespace std;
int inf = 1e9 + 7;
vector<vector<int>> g;
vector<int> label(int n, int k, vector<int> v, vector<int> u) {
g.assign(n, {});
int end = -1, end2 = -1;
for (int i = 0; i < n - 1; i++) {
g[v[i]].push_back(u[i]);
g[u[i]].push_back(v[i]);
}
for (int i = 0; i < n; i++) {
if ( g[i].size() == 1 && end == -1) {
end = i;
} else if (g[i].size() == 1) {
end2 = i;
}
}
int cur = end;
vector<int> res(n);
int num = 0;
int last = 0;
while (cur != end2) {
res[cur] = num;
num++;
if (cur == end) {
last = cur;
cur = g[cur][0];
} else {
int tr = cur;
cur = g[cur][0] + g[cur][1] - last;
last = tr;
}
}
res[cur] = num;
return res;
}
int find_next_station(int s, int t, vector<int> c) {
if (c.size() == 1) {
return c[0];
}
if (t > s) {
return max(c[0], c[1]);
} else {
return min(c[0], c[1]);
}
}
# | 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... |