#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. vector > mp; bool mask[x.size()]; memset(mask, 0, sizeof(mask)); for(int i =0 ; i < y.size(); i++) { mp.push_back({y[i]-r[i], y[i]+r[i]}); //cout << y[i]-r[i] << " - " << y[i]+r[i]<< endl; } for(int i = 0; i < x.size(); i ++) { for(int j = 0; j < mp.size(); j ++) { if(x[i] >= mp[j].first && x[i] <= mp[j].second) { //cout << "mask " << i << " is true\n"; mask[i] = true; } } } vector v; int sum = 0; for(int i =0 ; i < p.size(); i++) { if(mask[i]) { //cout << "p[i] = " << p[i] << endl; v.push_back(p[i]); } else { sum += p[i]; } } sort(v.begin(), v.end()); //cout << "v.size() -1 = " << sum << endl; sum += v[v.size() -1]; return sum; } 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; }