# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
727531 | cig32 | Tourism (JOI23_tourism) | C++17 | 1518 ms | 81128 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"
#define int long long
using namespace std;
int n, m, q;
const int MAXN = 1e5+10;
vector<int> e;
vector<int> adj[MAXN];
int dep[MAXN];
int par[MAXN];
int tin[MAXN], cur;
vector<int> ord;
void dfs(int node, int prv) {
e.push_back(node);
ord.push_back(node);
par[node] = prv;
tin[node] = ++cur;
dep[node] = (prv == -1 ? 0 : dep[prv] + 1);
for(int x: adj[node]) {
if(x != prv) {
dfs(x, node);
e.push_back(node);
}
}
}
int l[MAXN], r[MAXN];
pair<int,int> st[18][2 * MAXN];
int lca(int x, int y) {
int m1 = min(l[x], l[y]), m2 = max(r[x], r[y]);
int k = 32 - __builtin_clz(m2-m1+1) - 1;
return min(st[k][m1], st[k][m2-(1<<k)+1]).second;
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... |