# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
894007 | azosi | Min-max tree (BOI18_minmaxtree) | C++17 | 262 ms | 31740 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 x first
#define y second
using namespace std;
const int MAX_N = 70070;
const int INF = 1e9 + 100;
int n, q;
struct SegmentTree {
typedef int (*F)(int, int);
F merge;
int identity;
int tree[MAX_N * 4]{}, lazy[MAX_N * 4]{};
SegmentTree(F func, int identity) : merge(func), identity(identity) {
for (int i = 0; i < MAX_N * 4; ++i) tree[i] = lazy[i] = identity;
}
void push(int node, int l, int r) {
if (lazy[node] != identity) {
tree[node] = merge(tree[node], lazy[node]);
if (l != r) {
lazy[node * 2] = merge(lazy[node * 2], lazy[node]);
lazy[node * 2 + 1] = merge(lazy[node * 2 + 1], lazy[node]);
}
}
lazy[node] = identity;
}
# | 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... |