# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
435615 | two_sides | Distributing Candies (IOI21_candies) | C++17 | 609 ms | 38316 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 <vector>
#include <algorithm>
using namespace std;
struct segment_tree {
#define il i * 2
#define ir i * 2 + 1
static const long long INF = 1e18;
vector<long long> mini, maxi, lazy;
int n; long long total;
segment_tree(int n): n(n), mini(n * 4),
maxi(n * 4), lazy(n * 4), total(0) {}
void add(int i, int l, int r, int p, int v) {
if (l >= p) {
mini[i] += v; maxi[i] += v;
lazy[i] += v; return;
}
int m = (l + r) / 2;
if (m >= p) add(il, l, m, p, v);
add(ir, m + 1, r, p, v);
mini[i] = min(mini[il], mini[ir]) + lazy[i];
maxi[i] = max(maxi[il], maxi[ir]) + lazy[i];
}
void add(int p, int v) {
total += v; add(1, 0, n - 1, p, v);
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... |