#include "candies.h"
#include <vector>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define F first
#define S second
#define sz size()
const int N = 200005;
vector<int> a;
ll bit[N];
ll n , q;
ll get(ll x)
{
ll res = 0;
while(x>0)
{
res+=bit[x];
x -= (x&(-x));
}
return res;
}
void upd(ll x, ll val)
{
while(x<n+2)
{
bit[x] += val;
x += (x&(-x));
}
}
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();
a.resize(n);
for(int i = 0; i < q; i++)
{
ll L = l[i], R = r[i], val = v[i];
upd(L+1,val);
upd(R+2,-val);
}
for(int i = 0; i < n; i++)
{
ll x = get(i+1);
if(x>c[i]) a[i] = c[i]; else a[i] = x;
}
return a;
}
# | 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... |