#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll mmod = 998244353;
#define vl vector<long long>
#define vll vector<vector<long long>>
#define pl pair<long long, long long>
#define vb vector<bool>
std::vector<long long> calculate_costs(
std::vector<int> W, std::vector<int> A,
std::vector<int> B, std::vector<int> E){
ll n = W.size();
vll nums;
for (ll i = 0; i < n; i++){
nums.push_back({W[i], A[i], B[i]});
}
sort(nums.begin(), nums.end());
vl ans;
for (ll i = 0; i < E.size(); i++){
ll k = E[i];
vl dp (n+5, 1e18); dp[0] = 0;
for (ll j = 0; j < n; j++){
if (j < n){
dp[j+1] = min(dp[j] + nums[j][1], dp[j+1]);
}
if (j+1 < n){
if (nums[j+1][0] - nums[j][0] <= k){
dp[j+2] = min(dp[j] + nums[j][2] + nums[j+1][2], dp[j+2]);
}
}
if (j+2 < n){
if (nums[j+2][0] - nums[j][0] <= k){
dp[j+3] = min(dp[j] + nums[j][2] + nums[j+2][2] + nums[j+1][1], dp[j+3]);
}
}
}
ans.push_back(dp[n]);
}
return ans;
}
/*/int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
vector<int> W, A, B, E;
ll n;
cin >> n;
for (ll i = 0; i < n; i++){
ll a,b,c;
cin >>a >> b >> c;
W.push_back(a);
A.push_back(b);
B.push_back(c);
}
ll q;
cin >> q;
for (ll i = 0; i < q; i++){
ll a;
cin >> a;
E.push_back(a);
}
vl x = calculate_costs(W, A, B, E);
for (auto p : x){
cout << p << "\n";
}
return 0;
}
/*/
| # | 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... |