#include "candies.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define sz(x) (int)x.size()
#define fi first
#define se second
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define cmin(a,b) a=min(a,b)
#define cmax(a,b) a=max(a,b)
int n, q;
vector<int> distribute_candies(vector<int> c, vector<int> l, vector<int> r, vector<int> v) {
n = sz(c), q=sz(l);
vector<int> s(n, 0);
if (n<=2000 && q<=2000) {
for (int i=0; i<q; i++) {
while (l[i]<=r[i]) {
s[l[i]]+=v[i];
cmax(s[l[i]], 0), cmin(s[l[i]], c[l[i]]);
l[i]++;
}
}
return s;
}
vector<int> beg(n), end(n);
for (int i=0; i<q; i++) beg[l[i]]+=v[i], end[r[i]]+=v[i];
long long sm=0;
for (int i=0; i<n; i++) {
sm+=beg[i];
s[i]=min(sm, (long long)c[i]);
sm-=end[i];
}
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... |