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) { var cloudyMap = []; for (let i = 0, j = y.length; i < j; i++) { var range = r[i]; var startRange = y[i] - r; var endRange = y[i] + r; for (let k = startRange; k <= endRange; k++) { cloudyMap[k] = ++cloudyMap[k] || 1; } } var total = 0; var candidatePop = 0; for (let c = 0, l = x.length; c < l; c++) { var howManyClouds = cloudyMap[x[c]]; if (howManyClouds === undefined) { total += p[c]; continue; } if (howManyClouds === 1) { candidatePop = Math.max(candidatePop, p[c]); } } return total + candidatePop; // Return the maximum number of people that will be in a sunny town after removing exactly one cloud. } function main() { var n = parseInt(readLine()); var p = readLine().split(' '); p = p.map(Number); var x = readLine().split(' '); x = x.map(Number); var m = parseInt(readLine()); var y = readLine().split(' '); y = y.map(Number); var r = readLine().split(' '); r = r.map(Number); var result = maximumPeople(p, x, y, r); process.stdout.write("" + result + "\n"); }