#include "nile.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
std::vector<long long> calculate_costs(std::vector<int> W, std::vector<int> A, std::vector<int> B, std::vector<int> E) {
int N = W.size();
int Q = E.size();
vector<int> ord(N);
iota(ord.begin(), ord.end(), 0);
sort(ord.begin(), ord.end(), [&](int i, int j) {
return W[i]<W[j];
});
vector<ll> ret;
for (int d : E) {
ll add = 0;
for (int i=0; i<N;) {
int j = i+1;
while (j<N && W[ord[j]] - W[ord[j-1]] <= d) j++;
ll sum = 0;
for (int k=i; k<j; k++) sum += B[ord[k]];
ll ans = LLONG_MAX;
if ((j-i) % 2 == 0) ans = sum;
else {
for (int k=i; k<j; k+=2) ans = min(ans, sum - B[ord[k]] + A[ord[k]]);
for (int k = i+1; k<j; k+=2) if (W[ord[k+1]] - W[ord[k-1]] <= d) ans = min(ans, sum - B[ord[k]] + A[ord[k]]);
}
i=j;
add += ans;
}
ret.push_back(add);
}
return ret;
}
# | 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... |