# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
644003 | ymm | Hedgehog Daniyar and Algorithms (IZhO19_sortbooks) | C++17 | 502 ms | 262144 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 Loop(x,l,r) for (ll x = (l); x < (r); ++x)
#define LoopR(x,l,r) for (ll x = (r)-1; x >= (l); --x)
typedef long long ll;
typedef std::pair<int, int> pii;
typedef std::pair<ll , ll > pll;
using namespace std;
const int N = 1'000'010;
struct node {
vector<ll> srt;
ll mxs;
} seg[N<<2];
ll a[N];
int n;
void build(int i=0, int b=0, int e=n)
{
if (e-b == 1) {
seg[i].srt = {a[b]};
seg[i].mxs = 0;
return;
}
build(2*i+1, b, (b+e)/2);
build(2*i+2, (b+e)/2, e);
seg[i].mxs = max(seg[2*i+1].mxs, seg[2*i+2].mxs);
auto it = lower_bound(seg[2*i+2].srt.begin(), seg[2*i+2].srt.end(), seg[2*i+1].srt.back());
if (it != seg[2*i+2].srt.begin())
seg[i].mxs = max(seg[i].mxs, seg[2*i+1].srt.back() + *--it);
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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |