# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1241951 | hayford08 | Distributing Candies (IOI21_candies) | C++20 | 0 ms | 0 KiB |
std::vector<int> distribute_candies(std::vector<int> c, std::vector<int> l,
std::vector<int> r, std::vector<int> v) {
// int n = c.size();
// vector<int> prefix(n + 1, 0);
// int numQueries = l.size();
// for (int i = 0; i < numQueries; i++) {
// int left = l[i], right = r[i], value = v[i];
// prefix[left] += value;
// prefix[right + 1] -= value;
// }
// for (int i = 1; i <= n; i++) {
// prefix[i] += prefix[i - 1];
// }
// vector<int> res(n);
// for (int i = 0; i < n; i++) {
// res[i] = min(c[i], prefix[i]);
// }
// return res;
int n = c.size();
vector<int> res(n);
for (int i = 0; i < l.size(); i++) {
int left = l[i], right = r[i], value = v[i];
for (int j = left; j <= right; j++) {
res[j] = max(0, min(c[j], value + res[j]));
}
}
return res;
}