# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
304847 | penguinhacker | Railway (BOI17_railway) | C++17 | 140 ms | 22384 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
//source: https://oj.uz/problem/view/BOI17_railway
#include <bits/stdc++.h>
using namespace std;
const int mxN = 100000, K = 17;
int n, m, k, id[mxN];
int tin[mxN], tout[mxN], timer = 0;
int anc[mxN][K];
vector<pair<int, int>> adj[mxN];
void dfs(int u = 0, int p = -1) {
tin[u] = timer++;
anc[u][0] = p;
for (int i = 1; i < K; ++i) {
anc[u][i] = anc[u][i - 1] == -1 ? -1 : anc[anc[u][i - 1]][i - 1];
}
for (pair<int, int> v : adj[u]) {
if (v.first != p) {
id[v.first] = v.second;
dfs(v.first, u);
}
}
tout[u] = timer++;
}
bool is_anc(int a, int b) {
return tin[a] <= tin[b] && tout[a] >= tout[b];
}
int lca(int a, int b) {
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |