import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static long maximumPeople(long[] p, long[] x, long[] y, long[] r) { HashMap townPositionToPopulation = new HashMap<>(); for (int i = 0; i < p.length; ++i) { townPositionToPopulation.put(x[i], p[i]); } TreeSet sunnyTownsSet = new TreeSet(); for (long townPosition : x) { sunnyTownsSet.add(townPosition); } HashSet barelyDarkTowns = new HashSet<>(); HashSet darkTowns = new HashSet<>(); for (int i = 0; i < y.length; ++i) { for (long townPosition : sunnyTownsSet.subSet(y[i] - r[i], true, y[i] + r[i], true)) { if (darkTowns.contains(townPosition)) { continue; } else if (barelyDarkTowns.contains(townPosition)) { barelyDarkTowns.remove(townPosition); darkTowns.add(townPosition); } else { barelyDarkTowns.add(townPosition); sunnyTownsSet.remove(townPosition); } } } long alreadySunnyPopulation = 0; for (long sunnyTownPosition : sunnyTownsSet) { alreadySunnyPopulation += townPositionToPopulation.get(sunnyTownPosition); } TreeSet barelyDarkTownsTreeSet = new TreeSet(); for (long townPosition : barelyDarkTowns) { barelyDarkTownsTreeSet.add(townPosition); } long barelyDarkPopulation = 0; for (int i = 0; i < y.length; ++i) { long currentSum = 0; for (long townPosition : barelyDarkTownsTreeSet.subSet(y[i] - r[i], true, y[i] + r[i], true)) { currentSum += townPositionToPopulation.get(townPosition); } barelyDarkPopulation = Math.max(barelyDarkPopulation, currentSum); } return alreadySunnyPopulation + barelyDarkPopulation; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); long[] p = new long[n]; for(int p_i = 0; p_i < n; p_i++){ p[p_i] = in.nextLong(); } long[] x = new long[n]; for(int x_i = 0; x_i < n; x_i++){ x[x_i] = in.nextLong(); } int m = in.nextInt(); long[] y = new long[m]; for(int y_i = 0; y_i < m; y_i++){ y[y_i] = in.nextLong(); } long[] r = new long[m]; for(int r_i = 0; r_i < m; r_i++){ r[r_i] = in.nextLong(); } long result = maximumPeople(p, x, y, r); System.out.println(result); in.close(); } }