# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
171297 | parsa_mobed | Railway (BOI17_railway) | C++14 | 231 ms | 26336 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;
#define pii pair <int , int>
#define F first
#define S second
const int N = 2e5 + 10, LOG = 20;
int h[N], par[N][LOG], cnt[N], val[N], st[N], timer = 0;
vector <pii> g[N];
void dfs(int v, int pr = 0)
{
h[v] = h[pr] + 1;
st[v] = timer++;
par[v][0] = pr;
for (int i = 1; i < LOG; i++) par[v][i] = par[par[v][i - 1]][i - 1];
for (auto p : g[v]) if (p.F != pr) dfs(p.F, v);
}
int getpar(int v, int height)
{
for (int i = 0; i < LOG; i++) if (height & (1 << i)) v = par[v][i];
return v;
}
int LCA(int u, int v)
{
if (h[v] < h[u]) swap(u, v);
v = getpar(v, h[v] - h[u]);
# | 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... |