#include "candies.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
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> qu[n],ans(n);
for (int i=0;i<q;i++)
for (int j=l[i];j<=r[i];j++)
qu[j].push_back(i);
ll pre[q+1];
for (int i=0;i<n;i++)
{
for(int j=0;j<=q;j++) pre[j]=0;
for (int j:qu[i])
pre[j+1]=v[j];
ll mn=0, mx=0;
for (int j=1;j<=q;j++)
pre[j]+=pre[j-1], mx=max(mx,pre[j]), mn=min(mn,pre[j]);
if (mx-mn<=c[i])
{
ans[i]=pre[q]-mn;
continue;
}
mn=1e18, mx=0;
for (int j=q;j>=0;j--)
{
ll pmn=mn;
mx=max(mx,pre[j]), mn=min(mn,pre[j]);
if (mx-mn>c[i])
{
if (mn==pmn)
ans[i]=pre[q]-mn;
else
ans[i]=c[i]-mx+pre[q];
break;
}
}
}
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... |