#include using namespace std; long maximumPeople(vector p, vector x, vector y, vector r) { vector > vec; vector > > c; for(int i = 0; i < p.size(); i++) { vec.push_back(make_pair(p[i],x[i])); } sort(vec.begin(), vec.end()); reverse(vec.begin(), vec.end()); int cnt = 0; bool b = false; for(int i = 0; i < vec.size(); i++) { int pos = vec[i].second; bool b = 0; for(int j = 0; j < y.size(); j++) { if(!b && pos >= y[j]-r[j] && pos <= y[j]+r[j]) { cnt += vec[i].first; b = 1; } if(b == 1 && pos >= y[j]-r[j] && pos <= y[j]+r[j]) { b = 1; } } if(!b&&!b) cnt += vec[i].first; } return cnt; } 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; }