from itertools import accumulate from collections import defaultdict from bisect import bisect_right, bisect_left N = int(input()) R = list(map(int, input().split())) G = list(map(int, input().split())) B = list(map(int, input().split())) B.sort() # rdd = defaultdict(int) # gdd = defaultdict(int) rnum = [0]*(3*10**3+1) gnum = [0]*(3*10**3+1) bnum = [0]*(3*10**3+1) for i in range(N): # rdd[R[i]] += 1 # gdd[G[i]] += 1 rnum[R[i]] += 1 gnum[G[i]] += 1 bnum[B[i]] += 1 bnum_cum = [0] + list(accumulate(bnum)) ans = 0 maxR = max(R) for i in range(1, maxR+1): for j in range(1, i+1): add = rnum[i]*gnum[j]*(bnum_cum[i] - bnum_cum[i-j]) ans += add print(ans)