이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "candies.h"
#define ll long long
#include <bits/stdc++.h>
using namespace std;
const int mxN=200100;
int N, Q;
ll seg[4*mxN];
vector <int> ans;
void upd(int idx, int s1, int e1, int s2, int e2, ll x)
{
if(s2<=s1 && e1<=e2)
{
seg[idx]+=x;
return;
}
if(s2>e1 || s1>e2) return;
int mid=(s1+e1)/2;
upd(2*idx, s1, mid, s2, e2, x);
upd(2*idx+1, mid+1, e1, s2, e2, x);
}
ll solv(int idx, int s, int e, int pos)
{
if(s==e) return seg[idx];
int mid=(s+e)/2;
if(pos<=mid) return seg[idx]+solv(2*idx, s, mid, pos);
else return seg[idx]+solv(2*idx+1, mid+1, e, pos);
}
std::vector<int> distribute_candies(vector <int> c, vector <int> l,
vector <int> r, vector <int> v) {
N=c.size();
Q=v.size();
ans.resize(N);
for(int i=0;i<Q;i++)
{
upd(1, 0, N-1, l[i], r[i], v[i]);
}
for(int i=0;i<N;i++) ans[i]=min(solv(1, 0, N-1, i), (ll)c[i]);
return ans;
}
# | 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... |