# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
823468 | SUNWOOOOOOOO | Two Currencies (JOI23_currencies) | C++17 | 1648 ms | 55716 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;
using LL = long long;
using pint = pair <int, int>;
const int mxN = 100005, SIZE = 200000;
vector <int> adj[mxN], mid[mxN];
int n, m, q, A[mxN], B[mxN], S[mxN], T[mxN], X[mxN], ans[mxN]; LL Y[mxN];
int tin[2 * mxN], tout[2 * mxN], tcnt = 0, low[mxN], high[mxN], L[mxN];
pint C[mxN];
struct lca {
int par[20][mxN], dep[mxN];
void dfs(int now, int p){
par[0][now] = p;
for (int chi : adj[now]){
if (chi == p) continue;
dep[chi] = dep[now] + 1;
dfs(chi, now);
}
}
void init(){
dfs(1, 1);
for (int i = 1; i < 20; i++){
for (int j = 1; j <= n; j++){
par[i][j] = par[i - 1][par[i - 1][j]];
}
}
}
int query(int x, int y){
if (dep[x] < dep[y]) swap(x, y);
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... |