# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1084893 | Sunbae | Synchronization (JOI13_synchronization) | C++17 | 151 ms | 23864 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>
#define z exit(0)
#define mp make_pair
#define F first
#define S second
using namespace std;
using pii = pair<int,int>;
const int N = 1e5 + 5;
pii A[N], e[N];
vector<int> g[N];
int tin[N], tout[N], timer = 1, up[N][18], LOG, bit[N<<1];
bool active[N];
void upd(int i, int val){ for(; i<timer; i+=i&-i) bit[i] += val;}
int qry(int i){ int res = 0; for(; i; i-=i&-i) res += bit[i]; return res;}
void dfs(int u, int p){
up[u][0] = p;
tin[u] = timer++;
for(int j = 1; j<LOG; ++j) up[u][j] = up[up[u][j-1]][j-1];
for(int v: g[u]) if(v != p) dfs(v, u);
tout[u] = timer++;
}
int find_root(int u){
int qry_u = qry(tin[u]), v = u;
for(int j = LOG-1; j>=0; --j) if(qry(tin[up[u][j]]) == qry_u) v = up[u][j];
return v;
}
signed main(){
int n, m, q; scanf("%d %d %d", &n, &m, &q); LOG = 32 - __builtin_clz(n);
for(int i = 0, u, v; i<n-1; ++i){
scanf("%d %d", &u, &v); --u; --v;
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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |