#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) {
if (W[i]==W[j]) return A[i]-B[i] < A[j]-B[j];
return W[i]<W[j];
});
vector<ll> ret;
for (int d : E) {
vector<ll> dp(N);
dp[0] = A[ord[0]];
if (1<N && W[ord[1]] - W[ord[0]] <= d) dp[1] = B[ord[0]] + B[ord[1]];
else if (1<N) dp[1] = A[ord[0]] + A[ord[1]];
for (int i=2; i<N; i++) {
dp[i] = dp[i-1] + A[ord[i]];
if (W[ord[i]] - W[ord[i-1]] <= d) dp[i] = min(dp[i], dp[i-2] + B[ord[i]] + B[ord[i-1]]);
}
ret.push_back(dp[N-1]);
}
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... |