def solve(n, a, b, c, p): """ まず、パスとパスをつなぐ辺は、頂点にA_i の重みがあるとして、 sub[v] * (M - sub[v])の総和を求めればいい """ M = sum(a) ans = 0 sub = [a[i] for i in range(n)] for i in range(n-1, 0, -1): sub[p[i]] += sub[i] f = [[] for i in range(n)] for i in range(1, n): f[p[i]].append((c[i], sub[i])) f[i].append((b[i], M - sub[i])) ans += sub[i] * (M - sub[i]) for i in range(n): last = 0 f[i].append((a[i]-1, 0)) f[i].sort() A = 1 for x, r in f[i]: y = x - last ans += A * (M - A) * y - y * (y - 1) * (y * 2 - 1) // 6 + (M - A * 2) * y * (y - 1) // 2 A += r + y last = x return ans n = int(input()) a = list(map(int, input().split())) b = [-1] + [int(x) - 1 for x in input().split()] c = [-1] + [int(x) - 1 for x in input().split()] p = [-1] + [int(x) - 1 for x in input().split()] print(solve(n, a, b, c, p))