# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
557928 | surgutti | Distributing Candies (IOI21_candies) | C++17 | 318 ms | 31812 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;
vector<int> distribute_candies(vector<int> c, vector<int> l,
vector<int> r, vector<int> v) {
int n = (int) c.size();
int q = (int) l.size();
int tree_size = 1;
while (tree_size < q) {
tree_size <<= 1;
}
vector<long long> sumi(tree_size << 1);
vector<long long> mini(tree_size << 1);
vector<long long> maxi(tree_size << 1);
auto update = [&](int pos, int val) {
pos += tree_size;
sumi[pos] = val;
maxi[pos] = max(0, val);
mini[pos] = min(0, val);
for (; pos >>= 1; ) {
sumi[pos] = sumi[pos << 1 | 0] + sumi[pos << 1 | 1];
mini[pos] = min(mini[pos << 1 | 1], sumi[pos << 1 | 1] + mini[pos << 1 | 0]);
maxi[pos] = max(maxi[pos << 1 | 1], sumi[pos << 1 | 1] + maxi[pos << 1 | 0]);
}
};
# | 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... |