# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
503885 | ac2hu | Railway (BOI17_railway) | C++14 | 120 ms | 29624 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.
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
const int LG = log2(N) + 10;
vector<int> adj[N];
int n,m,k,l, timer = 0;
vector<pair<int,int>> edges;
int lca_util[N][LG];
int tin[N],tout[N];
int dist[N];
int ans[N];
void dfs(int i,int p){
tin[i] = ++timer;
lca_util[i][0] = p;
for(int j = 1;j<=l;j++){
lca_util[i][j] = lca_util[lca_util[i][j - 1]][j - 1];
}
for(int e : adj[i]){
if(e != p){
dfs(e,i);
}
}
tout[i] = ++timer;
}
bool is_ancestor(int i,int j){
return (tin[i] <= tin[j] && tout[i] >= tin[j]);
}
int lca(int u, int v){
if (is_ancestor(u, v))
return u;
Compilation message (stderr)
# | 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... |