# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
330792 | vitkishloh228 | Hedgehog Daniyar and Algorithms (IZhO19_sortbooks) | C++14 | 795 ms | 262148 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<iostream>
#include<vector>
#include<algorithm>
using namespace std;
#pragma GCC optimize("Ofast")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("fast-math")
#pragma GCC optimize("vpt")
vector<vector<int>> t;
vector<int> mx, ans, a;
void build(int v, int l, int r) {
if (l == r) {
t[v] = { a[l] };
mx[v] = a[l];
ans[v] = 0;
return;
}
int m = (l + r) >> 1;
build(2 * v, l, m);
build(2 * v + 1, m + 1, r);
t[v].resize(t[2 * v].size() + t[2 * v + 1].size());
merge(t[2 * v].begin(), t[2 * v].end(), t[2 * v + 1].begin(), t[2 * v + 1].end(), t[v].begin());
ans[v] = max(ans[2 * v], ans[2 * v + 1]);
mx[v] = max(mx[2 * v], mx[2 * v + 1]);
int pos1 = lower_bound(t[2 * v + 1].begin(), t[2 * v + 1].end(), mx[2 * v]) - t[2 * v + 1].begin();
pos1--;
if (pos1 >= 0) {
ans[v] = max(ans[v], mx[2 * v] + t[2 * v + 1][pos1]);
}
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... |