# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
872861 | MinaRagy06 | Two Currencies (JOI23_currencies) | C++17 | 1766 ms | 169384 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 ll long long
#define mid ((l + r) >> 1)
const int N = 100'005;
const ll inf = 1e18;
int anc[N][17], st[N], en[N], t;
ll h[N];
vector<array<int, 2>> adj[N];
array<ll, 2> a[N];
void dfs(int i, int par, ll d) {
h[i] = d;
anc[i][0] = par;
for (int j = 1; j < 17; j++) {
anc[i][j] = anc[anc[i][j - 1]][j - 1];
}
st[i] = t++;
for (auto [nxt, w] : adj[i]) {
if (nxt == par) continue;
dfs(nxt, i, d + w);
}
en[i] = t - 1;
}
int getlca(int u, int v) {
if (st[u] > st[v]) swap(u, v);
if (st[u] <= st[v] && en[v] <= en[u]) {
return u;
}
for (int j = 16; j >= 0; j--) {
# | 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... |