#!/bin/python3 import sys def sort2(a, b): inds = sorted(range(len(a)), key=lambda k: a[k]) return [a[u] for u in inds], [b[u] for u in inds] def cloud_start(pos, ran): return max(pos-ran, 0) def cloud_end(pos, ran, n): return min(pos+ran +1 , n+1) def process(a): value = 0 b = [] for u in a: value += u b.append(value) return b def maximumPeople(p, x, y, r, nb_towns, nb_clouds): pos_town, pop_town = sort2(x,p) pos_cloud, range_cloud = sort2(y,r) last_town = pos_town[-1] nb_clouds_town = [0 for _ in range(last_town+2)] for clo in range(nb_clouds): clo_start = cloud_start(pos_cloud[clo], range_cloud[clo]) clo_end = cloud_end(pos_cloud[clo], range_cloud[clo], last_town) nb_clouds_town[clo_start] += 1 nb_clouds_town[clo_end] -= 1 nb_clouds_over_town = process(nb_clouds_town) nb_people_clouded = [0 for _ in range(last_town+2)] for i in range(nb_towns): if nb_clouds_over_town[pos_town[i]] == 1: nb_people_clouded[pos_town[i]] = pop_town[i] print(nb_people_clouded) cumul_people_clouded = process(nb_people_clouded) return 110 if __name__ == "__main__": n = int(input().strip()) p = list(map(int, input().strip().split(' '))) x = list(map(int, input().strip().split(' '))) m = int(input().strip()) y = list(map(int, input().strip().split(' '))) r = list(map(int, input().strip().split(' '))) result = maximumPeople(p, x, y, r, n, m) print(result)