process.stdin.resume(); process.stdin.setEncoding('ascii'); var input_stdin = ""; var input_stdin_array = ""; var input_currentline = 0; process.stdin.on('data', function (data) { input_stdin += data; }); process.stdin.on('end', function () { input_stdin_array = input_stdin.split("\n"); main(); }); function readLine() { return input_stdin_array[input_currentline++]; } /////////////// ignore above this line //////////////////// function maximumPeople(p, x, y, r) { cities = [], clouds = []; for (let i = 0; i < p.length; i++) { cities.push({ 'pop': p[i], 'pos': x[i], 'cloud': -1 }); } for (let i = 0; i < y.length; i++) { var cloud = { 'pos': y[i], 'range': r[i], 'pop': 0 }; for (var j = 0; j < cities.length; j++) { if (cities[j].pos >= (cloud.pos - cloud.range) && cities[j].pos <= (cloud.pos + cloud.range)) { cities[j].cloud = i; cloud['pop'] += cities[j]['pop']; console.error(cloud['pop']); } } clouds.push(cloud); } clouds.sort((a,b) => b.pop - a.pop); var sunnypop = 0; for (let i = 0; i < cities.length; i++) { if (cities[i].cloud === -1) { sunnypop += cities[i].pop; } } sunnypop += clouds[0].pop; return sunnypop; // Return the maximum number of people that will be in a sunny town after removing exactly one cloud. } function main() { var n = parseInt(readLine()); p = readLine().split(' '); p = p.map(Number); x = readLine().split(' '); x = x.map(Number); var m = parseInt(readLine()); y = readLine().split(' '); y = y.map(Number); r = readLine().split(' '); r = r.map(Number); var result = maximumPeople(p, x, y, r); process.stdout.write("" + result + "\n"); }