#include using namespace std; #define fr(i,l,r) for(long i = l;i < r; i++) long maximumPeople(vector p, vector x, vector y, vector r) { bool flag[200001]; fr(i,0,200001) flag[i] = true; long maxn = INT_MIN; fr(i,0,p.size()) { maxn = max(p[i],maxn); } fr(i,0,y.size()) { long m = y[i]; fr(j,max((long)0,m-r[i]),min(maxn+1,m+r[i]+1)) { flag[j] = false; } } long b_ans = 0; fr(i,(long)0,(long)p.size()) { if(flag[x[i]]) b_ans += p[i]; } long f_ans = b_ans; fr(i,(long)0,(long)y.size()) { long m = y[i]; long temp = 0; fr(j,(long)0,(long)p.size()) { if(x[j] >= m-r[i] && x[j] <= m+r[i]) temp += p[j]; } f_ans = max(f_ans,b_ans+temp); } return f_ans; } int main() { int n; cin >> n; vector p(n); for(int p_i = 0; p_i < n; p_i++){ cin >> p[p_i]; } vector x(n); for(int x_i = 0; x_i < n; x_i++){ cin >> x[x_i]; } int m; cin >> m; vector y(m); for(int y_i = 0; y_i < m; y_i++){ cin >> y[y_i]; } vector r(m); for(int r_i = 0; r_i < m; r_i++){ cin >> r[r_i]; } long result = maximumPeople(p, x, y, r); cout << result << endl; return 0; }