#include "bits/stdc++.h"
using namespace std;
using ll = long long;
const ll mod = 1e9 + 7, inf = 9e18;
#define all(x) x.begin(), x.end()
#define len(x) ll(x.size())
#define mp make_pair
#define S second
#define F first
int a[1000], lvl[1000], t;
vector<int> adj[1000];
void dfs(int i, int d) {
lvl[i] = d;
if (lvl[i] & 1) a[i] = t++;
for (int j : adj[i]) {
if (lvl[j]) continue;
dfs(j, d + 1);
}
if (!(lvl[i] & 1)) a[i] = t++;
}
vector<int> label(int n, int k, vector<int> u, vector<int> v) {
for (int i = 0; i < n - 1; i++) {
adj[u[i]].push_back(v[i]);
adj[v[i]].push_back(u[i]);
}
dfs(0, 1); vector<int> res;
for (int i = 0; i < n; i++) {
res.push_back(a[i]);
adj[i].clear();
lvl[i] = 0;
}
t = 0; return res;
}
int find_next_station(int s, int t, vector<int> c) {
if (s > c[0]) {
for (int i = 1; i < len(c) - 1; i++) {
if (c[i] <= t && t < c[i + 1]) return c[i];
}
if (c.back() <= t && t < s) return c.back();
return c[0];
}
for (int i = 1; i < len(c) - 1; i++) {
if (c[i - 1] < t && t <= c[i]) return c[i];
}
if (s < t && t <= c[0]) return c[0];
return c.back();
}
# | 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... |