# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1170290 | nguyenkhangninh99 | Railway (BOI17_railway) | C++17 | 91 ms | 32708 KiB |
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
vector<int> g[maxn];
int h[maxn], up[maxn][22], tin[maxn], out[maxn], cost[maxn], timeDfs = 0;
map<pair<int, int>, int> mp;
void dfs(int u){
tin[u] = ++timeDfs;
for(int v: g[u]){
if(v == up[u][0]) continue;
h[v] = h[u] + 1;
up[v][0] = u;
for(int j = 1; j <= 21; j++) up[v][j] = up[up[v][j - 1]][j - 1];
dfs(v);
}
out[u] = timeDfs;
}
int lca(int u, int v){
if(h[u] != h[v]){
if(h[u] < h[v]) swap(u, v);
int k = h[u] - h[v];
# | 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... |