#include #define int long long using namespace std; long long x[222222], y[222222], r[222222], p[222222]; signed main() { ios::sync_with_stdio(false); cin.tie(); cout.tie(); vector< pair, int> > pt; int n, m; cin >> n; for (int i = 0; i < n; i++) { cin >> x[i]; } for (int i = 0; i < n; i++) { cin >> y[i]; pt.push_back(make_pair(make_pair(y[i], 1), -x[i])); } cin >> m; for (int i = 0; i < m; i++) { cin >> p[i]; } for (int i = 0; i < m; i++) { cin >> r[i]; pt.push_back(make_pair(make_pair(p[i]-r[i], 0), i)); pt.push_back(make_pair(make_pair(p[i]+r[i], 2), i)); } sort(pt.begin(), pt.end()); set cur; cur.clear(); int res = 0; int recur[222222]; memset(recur, 0, sizeof(recur)); for (int i = 0; i < pt.size(); i++) { if (pt[i].second >= 0) { if (cur.find(pt[i].second)==cur.end()) { cur.insert(pt[i].second); } else { cur.erase(cur.find(pt[i].second)); } } else if (cur.size() <= 1) { if (!cur.empty()) { recur[*cur.begin()] -= pt[i].second; } else res -= pt[i].second; } } int ma = -INT_MAX; for (int i = 0; i < m; i++) { ma = max(ma, recur[i]); } cout << res + ma; }