N = int(eval(input()))

L = list(map(int,input().split()))

S = [0]

c = 0

for i in range(N):

  c = S[i] + L[i]

  S.append(c)

S.sort()

S.append(S[N]+1)

k = 0

p = 1

ans = 0

while k <= N:

  if S[k] == S[k+1]:

    p += 1

    k += 1

  else:

    ans += p*(p-1)//2

    p = 1

    k += 1

print(ans)
N = int(eval(input()))

A = list(map(int,input().split()))

R = [0]     #Rは累積和を格納するリストです

for i in range(N):

    R.append(R[i]+A[i])     #累積和を入れます

R.sort()

R.append(10**18)     #カウントを止めます（番兵）

cnt = 1

ans = 0

cur = R[0]     #curは今見ている累積和を表します

for i in range(1,N+2):     #番兵の所で止まるように、N+1まで数えます

    if cur == R[i]:

        cnt += 1     #curと新たに見たR[i]が等しければインクリメント

    else:

        ans += cnt*(cnt-1)//2

        cur = R[i]    #違っていたら、curをR[i]に更新

        cnt = 1     #cntを1に戻す

print(ans)
N = int(eval(input()))
L = list(map(int, input().split()))
S = [0]
c = 0
for i in range(N):
    c = S[i] + L[i]
    S.append(c)
S.sort()
S.append(S[N] + 1)
k = 0
p = 1
ans = 0
while k <= N:
    if S[k] == S[k + 1]:
        p += 1
        k += 1
    else:
        ans += p * (p - 1) // 2
        p = 1
        k += 1
print(ans)

N = int(eval(input()))
A = list(map(int, input().split()))
R = [0]  # Rは累積和を格納するリストです
for i in range(N):
    R.append(R[i] + A[i])  # 累積和を入れます
R.sort()
R.append(10**18)  # カウントを止めます（番兵）
cnt = 1
ans = 0
cur = R[0]  # curは今見ている累積和を表します
for i in range(1, N + 2):  # 番兵の所で止まるように、N+1まで数えます
    if cur == R[i]:
        cnt += 1  # curと新たに見たR[i]が等しければインクリメント
    else:
        ans += cnt * (cnt - 1) // 2
        cur = R[i]  # 違っていたら、curをR[i]に更新
        cnt = 1  # cntを1に戻す
print(ans)

-L = list(map(int, input().split())) -S = [0] -c = 0 +A = list(map(int, input().split())) +R = [0]  # Rは累積和を格納するリストです -    c = S[i] + L[i] -    S.append(c) -S.sort() -S.append(S[N] + 1) -k = 0 -p = 1 +    R.append(R[i] + A[i])  # 累積和を入れます +R.sort() +R.append(10**18)  # カウントを止めます（番兵） +cnt = 1 -while k <= N: -    if S[k] == S[k + 1]: -        p += 1 -        k += 1 +cur = R[0]  # curは今見ている累積和を表します +for i in range(1, N + 2):  # 番兵の所で止まるように、N+1まで数えます +    if cur == R[i]: +        cnt += 1  # curと新たに見たR[i]が等しければインクリメント -        ans += p * (p - 1) // 2 -        p = 1 -        k += 1 +        ans += cnt * (cnt - 1) // 2 +        cur = R[i]  # 違っていたら、curをR[i]に更新 +        cnt = 1  # cntを1に戻す