# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1122626 | Pacybwoah | Triple Jump (JOI19_jumps) | C++20 | 856 ms | 90492 KiB |
#include<iostream>
#include<vector>
using namespace std;
const int mininf = -1e9;
struct node{
int ma, mb, sum;
node(int _ma, int _mb, int _sum){
ma = _ma, mb = _mb, sum = _sum;
}
};
vector<node> seg;
inline node pull(node a, node b){
return node(max(a.ma, b.ma), max(a.mb, b.mb), max(max(a.sum, b.sum), a.ma + b.mb));
}
void build(int l, int r, int ind, vector<int>& vec){
if(l == r){
seg[ind].mb = vec[l];
return;
}
int mid = (l + r) >> 1;
build(l, mid, ind * 2, vec);
build(mid + 1, r, ind * 2 + 1, vec);
seg[ind] = pull(seg[ind * 2], seg[ind * 2 + 1]);
}
void modify(int l, int r, int pos, int num, int ind){
if(l == r){
seg[ind].ma = max(seg[ind].ma, num);
seg[ind].sum = max(seg[ind].sum, seg[ind].ma + seg[ind].mb);
return;
}
# | 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... |