#include "stations.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
#define ii pair <int, int>
#define ff first
#define ss second
#define bit(i) (1 << (i))
#define fto(i, a, b) for (int i = (a); i <= (b); ++i)
#define fdto(i, a, b) for (int i = (a); i >= (b); --i)
#define flto(i, a, b) for (int i = (a); (1 << i) <= (b); ++i)
#define pb push_back
#define pf push_front
#define endl "\n"
#define oo (int)(998244353)
#define maxN 1005
#define l(s) s.length()
#define vi vector <int>
#define vii vector <ii>
#define fat(x, y) for (auto x : y)
#define fit(x, y) for (int x : y)
#define fiit(x, y) for (ii x : y)
#define EPS 1e-9
#define pi (acos(-1))
#define ll long long
int tme;
vi ke[maxN];
int pos[maxN], en[maxN];
void dfs(int u, int par) {
pos[u] = tme++;
for (int v : ke[u]) if (v != par) {
dfs(v, u);
}
en[u] = (tme - 1);
}
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
tme = 0;
fto(i, 0, n-1) ke[i].clear();
fto(i, 0, n-2) {
ke[u[i]].pb(v[i]);
ke[v[i]].pb(u[i]);
}
dfs(0, -1);
vi res;
fto(i, 0, n-1) res.pb(pos[i]*1000 + en[i]);
return res;
}
int find_next_station(int s, int t, std::vector<int> c) {
s /= 1000;
t /= 1000;
if (t < s) return c[0];
int sz = int(c.size());
if (sz == 1) return c[0];
vi a, b;
fto(i, 0, sz-1) {
a.pb(c[i]/1000);
b.pb(c[i]%1000);
}
if (t > b[sz-1]) return c[0];
fto(i, 1, sz-1) if (b[i] >= t) return c[i];
return c[0];
}
# | 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... |