# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
43357 | szawinis | Synchronization (JOI13_synchronization) | C++14 | 282 ms | 73156 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 rep(i, a, b) for(int i = a; i < b; i++)
#define repi(i, a, b) for(int i = a; i <= b; i++)
#define drep(i, a, b) for(int i = a; i >= b; i--)
using namespace std;
const int N = 1 << 18;
int n, m, q, u[N], v[N], d[N], s[N], e[N], ord[N], res[N], last[N];
bool state[N];
vector<int> g[N];
void dfs(int u, int p) {
static int idx = 0;
s[u] = ++idx;
ord[s[u]] = u;
for(int v: g[u]) if(v != p) d[v] = d[u] + 1, dfs(v, u);
e[u] = idx;
}
int t[2*N];
void build(int i = 1, int l = 0, int r = N-1) {
if(l == r) {
t[i] = e[ord[l]];
return;
}
int mid = l+r >> 1;
build(i<<1, l, mid);
build(i<<1|1, mid+1, r);
t[i] = max(t[i<<1], t[i<<1|1]);
}
void update(int targ, int val, int i = 1, int l = 0, int r = N-1) {
if(l == r) {
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... |