#include using namespace std; long maximumPeople(vector p, vector x, vector y, vector r) { long total = 0; int pSize = p.size(); int xSize = x.size(); int ySize = y.size(); int rSize = r.size(); vector covered; for (int i = 0; i < ySize; i++) { covered.push_back(y[i]-r[i]); covered.push_back(y[i]); covered.push_back(y[i]+r[i]); } long maxP = INT_MIN; vector iC(xSize); for (int i = 0; i < xSize; i++) { for (int j = 0; j < covered.size(); j++) { if (x[i] == covered[i]) { iC[i] = true; } } } int index = -1; for (int i = 0; i < xSize; i++) { if (iC[i] == true) { int tmp = maxP; if (maxP > p[i]) { maxP = p[i]; } index = (tmp!=maxP) ? i : index; } } for (int i = 0; i < xSize; i++) { if (iC[i] == false) { total += p[i]; } } return total+p[index]; } 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; }