#include using namespace std; long maximumPeople(vector p, vector x, vector y, vector r) { // Return the maximum number of people that will be in a sunny town after removing exactly one cloud. int dark_count[y.size()]; int sunny_count[y.size()]; for(int i = 0; i < y.size(); i++){ dark_count[i] = 0; sunny_count[i] = 0; } for(int i = 0; i < p.size(); i++){ for(int j = 0; j < y.size(); j++){ if(x[i] <= y[j] + r[j] && x[i] >= y[j] - r[j]){ dark_count[j] += p[i]; } else{ sunny_count[j] += p[i]; } } } int max_count = -10000; int max_index; for(int i = 0; i < y.size(); i++){ if(dark_count[i] > max_count){ max_count = dark_count[i]; max_index = i; } } int count = 0; for(int j = 0; j < y.size(); j++){ count += sunny_count[j]; } return count + dark_count[max_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; }