# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
803031 | lukameladze | Two Currencies (JOI23_currencies) | C++17 | 3328 ms | 163760 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 f first
#define s second
#define int long long
#define pii pair <int, int>
#define pb push_back
const int N = 3e5 + 5;
int n, m, q, a[N], b[N], edge[N], par[N][20], idx[N], c[N], in[N], out[N], tin, cur;
vector <pii> v[N];
int le_[30 * N], ri_[30 * N], root[N];
pii tree[30 * N];
void dfs(int a, int p) {
par[a][0] = p;
for (int i = 1; i <= 18; i++) {
par[a][i] = par[par[a][i - 1]][i - 1];
}
in[a] = ++tin;
for (pii sth : v[a]) {
int to = sth.f, id = sth.s;
if (to == p) continue;
edge[id] = to; // {a, to}
dfs(to, a);
}
out[a] = tin;
}
int upper(int a, int b) {
return (in[a] <= in[b] && out[a] >= out[b]);
}
int lca(int a, int b) {
# | 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... |