#include <iostream>
#include "nile.h"
#define fi first
#define se second
#define ll long long
#define pb push_back
using namespace std;
const ll INF=1e18+5;
vector<long long> calculate_costs(vector<int> w, vector<int> a, vector<int> b, vector<int> e) {
int Q=(int)e.size(), n=(int)w.size();
ll asum=0, bsum=0,bbest=INF,bbest2=INF;
for(int i=0; i<n; i++) asum+=a[i];
for(int i=0; i<n; i++) bsum+=b[i];
if(n&1){
for(int i=0; i<n; i+=2){
bbest=min(bbest,bsum-b[i]+a[i]);
}
for(int i=1; i<n; i+=2){
bbest2=min(bbest2,bsum-b[i]+a[i]);
}
}
else bbest=bsum;
bbest2=min(bbest2,bbest);
vector<long long> r(Q, 0);
for(int q=0; q<Q; q++){
int d=e[q];
if(d==0) r[q]=asum;
else if(d==1) r[q]=bbest;
else r[q]=bbest2;
}
return r;
}