#include <bits/stdc++.h>
#define lsb(x) (x & (-x))
#define ll long long
// 102

using namespace std;

const int MAXN = (int) 2e5 + 5;

pair <int, int> town[MAXN + 1];

int p[MAXN + 1];

int sp[MAXN + 1];
ll sp1[MAXN + 1];

int y[MAXN + 1], r[MAXN + 1];

int main() {
    //ifstream cin("A.in");
    //ofstream cout("A.out");
    int n, m, i;
    ios::sync_with_stdio(false);
    cin >> n;
    for(i = 1; i <= n; i++) {
        cin >> p[i];
    }
    for(i = 1; i <= n; i++) {
        cin >> town[i].first;
        town[i].second = i;
    }
    sort(town + 1, town + n + 1);
    cin >> m;
    for(i = 1; i <= m; i++) {
        cin >> y[i];
    }
    for(i = 1; i <= m; i++) {
        cin >> r[i];
        int rez1 = 0, rez2 = 0;
        for(int pas = 1 << 17; pas; pas >>= 1) {
            if(rez1 + pas <= n && y[i] - r[i] > town[rez1 + pas].first)
                rez1 += pas;
            if(rez2 + pas <= n && y[i] + r[i] >= town[rez2 + pas].first)
                rez2 += pas;
        }
        rez1++;
        if(rez1 <= rez2) {
            sp[rez1]++;
            sp[rez2 + 1]--;
        }
    }
    ll sum = 0;
    for(i = 1; i <= n; i++) {
        sp[i] += sp[i - 1];
        sp1[i] = sp1[i - 1] + (sp[i] == 1) * p[town[i].second];
        if(sp[i] == 0)
            sum += p[town[i].second];
    }
    ll ans = sum;
    for(i = 1; i <= m; i++) {
        int rez1 = 0, rez2 = 0;
        for(int pas = 1 << 17; pas; pas >>= 1) {
            if(rez1 + pas <= n && y[i] - r[i] > town[rez1 + pas].first)
                rez1 += pas;
            if(rez2 + pas <= n && y[i] + r[i] >= town[rez2 + pas].first)
                rez2 += pas;
        }
        rez1++;
        if(rez1 <= rez2) {
            //printf("%d %d %lld\n" ,rez1,rez2,sum);
            ans = max(ans, sum + sp1[rez2] - sp1[rez1 - 1]);
        }
    }
    cout << ans;
    //cin.close();
    //cout.close();
    return 0;
}