#include "nile.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define mp make_pair
#define pii pair<int, int>
#define fi first
#define se second
#define pb push_back
vector<int> calculate_costs(vector<signed> w, vector<signed> a, vector<signed> b, vector<signed> e){
vector<int> ans(e.size());
vector<pair<int, pii> > vect(w.size());
for (int i=0; i<w.size(); ++i)vect[i]=mp(w[i], mp(a[i], b[i]));
sort(vect.begin(), vect.end());
for (int tc=0; tc<e.size(); ++tc){
int d=e[tc];
vector<pii> ord;
int l=0, r=0;
for (int i=1; i<vect.size(); ++i){
if (vect[i].fi-vect[i-1].fi<=d)++r;
else ord.pb(mp(l, r)), l=r=i;
}
ord.pb(mp(l, r));
int res=0;
for (auto c:ord){
for (int i=c.fi; i<=c.se; ++i)res+=vect[i].se.se;
if (c.se%2!=c.fi%2)continue;
int mn=LLONG_MAX/2;
for (int i=c.fi+2; i<=c.se; ++i)if (vect[i].fi-vect[i-2].fi<=d)mn=min(mn, vect[i-1].se.fi-vect[i-1].se.se);
for (int i=c.fi; i<=c.se; i+=2)mn=min(mn, vect[i].se.fi-vect[i].se.se);
//case where i take odd index so split even, 1, even
//case where i take even index so split odd, 1, odd maybe irrelevant?
//case where i can take one thing for free
res+=mn;
}
ans[tc]=res;
}
return ans;
}