# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
828471 | khshg | Two Currencies (JOI23_currencies) | C++14 | 829 ms | 31200 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 pb push_back
int N, M, Q;
vector<vector<int>> adj;
vector<int> par, sz, anc, flat, pos;
vector<pair<int, int>> e, ch;
vector<int> S, T, X;
vector<long long> Y;
void dfs_sz(int s) {
sz[s] = 1;
if(adj[s][0] == par[s] && (int)adj[s].size() >= 2) swap(adj[s][0], adj[s][1]);
for(auto& u : adj[s]) {
if(u == par[s]) continue;
par[u] = s;
dfs_sz(u);
sz[s] += sz[u];
if(sz[adj[s][0]] < sz[u]) swap(adj[s][0], u);
}
}
void build_hld(int s, int r) {
pos[s] = (int)flat.size();
flat.pb(s);
anc[s] = r;
for(auto& u : adj[s]) {
if(u == par[s]) continue;
build_hld(u, (u == adj[s][0] ? r : 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... |