import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String line1 = reader.readLine(); if (line1 == null) return; int n = Integer.parseInt(line1.trim()); long[] a = new long[n]; StringTokenizer stA = new StringTokenizer(reader.readLine()); for (int i = 0; i < n; i++) { a[i] = Long.parseLong(stA.nextToken()); } int[] types = new int[n]; int[] lens = new int[n]; int[] rewards = new int[n]; StringTokenizer stB = new StringTokenizer(reader.readLine()); for (int i = 0; i < n; i++) { types[i] = Integer.parseInt(stB.nextToken()); if (types[i] == 1) { lens[i] = 1; rewards[i] = 1; } else if (types[i] == 2) { lens[i] = 2; rewards[i] = 3; } else { lens[i] = 4; rewards[i] = 5; } } for (int i = 0; i < n - 1; i++) { if (a[i] + lens[i] >= a[i + 1]) { System.out.println(0); return; } } int m = Integer.parseInt(reader.readLine().trim()); long[] x = new long[m]; StringTokenizer stX = new StringTokenizer(reader.readLine()); for (int i = 0; i < m; i++) { x[i] = Long.parseLong(stX.nextToken()); } int[] y = new int[m]; StringTokenizer stY = new StringTokenizer(reader.readLine()); for (int i = 0; i < m; i++) { y[i] = Integer.parseInt(stY.nextToken()); } boolean[] overcome = new boolean[n]; int obsIdx = 0; for (int j = 0; j < m; j++) { long jumpStart = x[j]; long jumpEnd = x[j] + y[j]; while (obsIdx < n && a[obsIdx] < jumpStart) { obsIdx++; } int tempIdx = obsIdx; while (tempIdx < n && a[tempIdx] + lens[tempIdx] <= jumpEnd) { overcome[tempIdx] = true; tempIdx++; } } long totalScore = 0; for (int i = 0; i < n; i++) { if (overcome[i]) { totalScore += rewards[i]; } else { totalScore -= 1; } } System.out.println(Math.max(0, totalScore)); } }