#include <vector>
#include <algorithm>
using namespace std;
vector<int> distribute_candies(vector<int> c, vector<int> l, vector<int> r, vector<int> v) {
int n = c.size(), q = l.size();
vector<int> diff(n + 1, 0); // difference array of size n+1
// Apply all range updates using the difference array
for (int i = 0; i < q; ++i) {
diff[l[i]] += v[i];
if (r[i] + 1 < n)
diff[r[i] + 1] -= v[i];
}
// Recover actual box values using prefix sum and clamp to capacity
vector<int> boxes(n, 0);
int sum = 0;
for (int i = 0; i < n; ++i) {
sum += diff[i];
boxes[i] = min(c[i], sum);
}
return boxes;
}
# | 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... |