#include "nile.h"
#include <bits/stdc++.h>
using namespace std;
vector<long long> calculate_costs(vector<int> W, vector<int> A, vector<int> B, vector<int> E) {
long long n = A.size();
vector<array<long long,3>>boxes(n);
for(long long i = 0;i<n;i++){
boxes[i]={W[i],A[i],B[i]};
}
sort(boxes.begin(),boxes.end());
long long q = (long long)E.size();
vector<long long>ans(q);
long long prefa[n];
prefa[0]=boxes[0][1];
for(long long i = 1;i<n;i++){
prefa[i]=prefa[i-1]+boxes[i][1];
}
for(long long z = 0;z<q;z++){
long long d = E[z];
long long dp[n];
dp[0]=boxes[0][1];
multiset<long long>vals;
long long x = 0;
vals.insert(1LL*boxes[0][2]-prefa[0]);
long long valarr[n];
valarr[0]=1LL*boxes[0][2]-prefa[0];
for(long long i = 1;i<n;i++){
dp[i]=dp[i-1]+boxes[i][1];
while(boxes[x][0]<boxes[i][0]-d){
vals.erase(vals.find(valarr[x]));
x++;
}
if(vals.size())
dp[i]=min(dp[i],1LL*boxes[i][2]+prefa[i-1]+(*vals.begin()));
vals.insert(dp[i-1]+1LL*boxes[i][2]-prefa[i]);
valarr[i]=dp[i-1]+1LL*boxes[i][2]-prefa[i];
}
ans[z]=dp[n-1];
}
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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |