# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
833941 | josanneo22 | Two Currencies (JOI23_currencies) | C++17 | 189 ms | 42940 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 int long long
#define ld long double
#define mp make_pair
#define pb push_back
#define pii pair<int,int>
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define ar array
const int N=1e5+500,K=25;
int cnt = 0, cur = 0, tin[N], tout[N], sp[N][K];
vector<pair<int,int>> g[N];
int dep[N], w[N];
void dfs(int u, int p){
tin[u] = cur++;
sp[u][0] = p;
for(int i = 1; i < K; i++)
sp[u][i] = sp[sp[u][i-1]][i-1];
for(auto x : g[u]){
if(x.fi == p) continue;
dep[x.fi] = dep[u]+w[x.se];
dfs(x.fi,u);
}
tout[u] = cur++;
}
bool is_anc(int u, int v){
return (tin[u] <= tin[v] && tout[v] <= tout[u]);
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... |