#include "candies.h"
#include <bits/stdc++.h>
using namespace std;
const int maxn = 2005;
int n, q;
long long t[maxn * 4];
long long ql, qr, upd_val;
void update(int i, int l, int r)
{
if(qr < l || ql > r)return;
if(ql <= l && r <= qr)
{
t[i] += upd_val;
return;
}
int mid = (l + r)/2;
update(2*i, l, mid);
update(2*i+1, mid+1, r);
}
int pos;
long long collect(int i, int l, int r)
{
if(l == r)
{
return t[i];
}
int mid = (l + r)/2;
if(pos <= mid)return t[i] + collect(2*i, l, mid);
else return t[i] + collect(2*i+1, mid+1, r);
}
std::vector<int> distribute_candies(std::vector<int> c, std::vector<int> l,
std::vector<int> r, std::vector<int> v) {
n = c.size();
q = l.size();
std::vector<int> s(n, 0);
for (int i = 0; i < q; ++ i)
{
ql = l[i];
qr = r[i];
upd_val = v[i];
update(1, 0, n-1);
}
for (int i = 0; i < n; ++ i)
{
pos = i;
s[i] = min(1LL * c[i], collect(1, 0, n-1));
}
return s;
}
# | 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... |