# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
502930 | amunduzbaev | Triple Jump (JOI19_jumps) | C++14 | 1298 ms | 106564 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 ar array
#define int long long
const int N = 5e5 + 5;
struct ST{
int tree[N * 4], add[N * 4], p[N * 4];
void sett(int i, int v, int lx = 0, int rx = N, int x = 1){
if(lx == rx) { add[x] = v; return; }
int m = (lx + rx) >> 1;
if(i <= m) sett(i, v, lx, m, x<<1);
else sett(i, v, m+1, rx, x<<1|1);
add[x] = max(add[x<<1], add[x<<1|1]);
}
void push(int x, int lx, int rx){
if(lx == rx || !p[x]) return;
tree[x<<1] = max(tree[x<<1], p[x] + add[x<<1]);
tree[x<<1|1] = max(tree[x<<1|1], p[x] + add[x<<1|1]);
p[x<<1] = max(p[x<<1], p[x]), p[x<<1|1] = max(p[x<<1|1], p[x]);
p[x] = 0;
}
void umax(int l, int r, int v, int lx = 0, int rx = N, int x = 1){
if(lx > r || rx < l) return;
if(lx >= l && rx <= r){
tree[x] = max(tree[x], v + add[x]);
# | 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... |