#include <bits/stdc++.h>
#include "nile.h"
using namespace std;
using ll = long long;
#define int ll
const int N = 100005;
const ll inf = 1e15;
struct obiect {
ll w, a, b;
const bool operator < (const obiect &oth) {
return w < oth.w;
}
};
std::vector<long long> calculate_costs(std::vector<signed> w, std::vector<signed> a, std::vector<signed> b, std::vector<signed> e) {
ll n = w.size();
vector<obiect> v;
for (int i = 0; i < n; i ++) {
v.push_back({w[i], a[i], b[i]});
}
sort(v.begin(), v.end());
vector<ll> ans;
for (auto q : e) {
int start = 0;
ans.push_back(0);
while (start < n) {
int last = n - 1;
for (int i = start; i < n - 1; i ++) {
if (v[i + 1].w - v[i].w > q) {
last = i;
break;
}
}
int rasp = 0;
for (int i = start; i <= last; i ++) {
rasp += v[i].b;
}
if ((last - start + 1) % 2 == 0) {
ans.back() += rasp;
} else {
int mn = inf;
for (int i = start; i <= last; i += 2) {
mn = min(mn, v[i].a - v[i].b);
}
for (int i = start + 1; i < last; i += 2) {
if (v[i + 1].w - v[i - 1].w <= q) {
mn = min(mn, v[i].a - v[i].b);
}
}
ans.back() += rasp + mn;
}
start = last + 1;
}
}
return ans;
}