# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
434976 | model_code | 사탕 분배 (IOI21_candies) | C++17 | 783 ms | 35772 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "candies.h"
#include <algorithm>
#include <vector>
struct SegTree {
int n;
std::vector<long long> mini, maxi, sums, vals;
SegTree(int _n): n(_n) {
mini.assign(n * 2, 0);
maxi.assign(n * 2, 0);
sums.assign(n * 2, 0);
vals.assign(n, 0);
}
void update(int idx, int l, int r, int x, int val) {
if (l == x && r == x + 1) {
mini[idx] = maxi[idx] = sums[idx] = val;
return;
}
int mid = (l + r) >> 1;
int lidx = idx + 1, ridx = idx + (mid - l) * 2;
if (x < mid) update(lidx, l, mid, x, val);
else update(ridx, mid, r, x, val);
mini[idx] = std::min(mini[lidx] + sums[ridx], mini[ridx]);
maxi[idx] = std::max(maxi[lidx] + sums[ridx], maxi[ridx]);
sums[idx] = sums[lidx] + sums[ridx];
}
# | 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... |