n = int(eval(input()))

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

D1 = {}

D2 = {}

def count(D, s):

    if s in D:

        D[s] += 1

    else:

        D[s] = 1

for i, a in enumerate(A):

        count(D1, a+i)

        count(D2, i-a)

ans = 0

for d, num in list(D1.items()):

    if d in D2:

        ans += num * D2[d]

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

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

# a+i と i-aのとりうる値の個数をカウントするが

# 一致するとしても[0, n)の範囲だけなのでDの大きさはnで十分

D = [0]*n

for i, a in enumerate(A):

    if i+a < n:

        D[i+a] += 1

ans = 0

# i-aに対応するD[i-a]を加えるだけで答えが求まる

for i, a in enumerate(A):

    if i-a >= 0:

        ans += D[i-a]

print(ans)
n = int(eval(input()))
A = list(map(int, input().split()))
D1 = {}
D2 = {}


def count(D, s):
    if s in D:
        D[s] += 1
    else:
        D[s] = 1


for i, a in enumerate(A):
    count(D1, a + i)
    count(D2, i - a)
ans = 0
for d, num in list(D1.items()):
    if d in D2:
        ans += num * D2[d]
print(ans)

n = int(eval(input()))
A = list(map(int, input().split()))
# a+i と i-aのとりうる値の個数をカウントするが
# 一致するとしても[0, n)の範囲だけなのでDの大きさはnで十分
D = [0] * n
for i, a in enumerate(A):
    if i + a < n:
        D[i + a] += 1
ans = 0
# i-aに対応するD[i-a]を加えるだけで答えが求まる
for i, a in enumerate(A):
    if i - a >= 0:
        ans += D[i - a]
print(ans)

-D1 = {} -D2 = {} - - -def count(D, s): -    if s in D: -        D[s] += 1 -    else: -        D[s] = 1 - - +# a+i と i-aのとりうる値の個数をカウントするが +# 一致するとしても[0, n)の範囲だけなのでDの大きさはnで十分 +D = [0] * n -    count(D1, a + i) -    count(D2, i - a) +    if i + a < n: +        D[i + a] += 1 -for d, num in list(D1.items()): -    if d in D2: -        ans += num * D2[d] +# i-aに対応するD[i-a]を加えるだけで答えが求まる +for i, a in enumerate(A): +    if i - a >= 0: +        ans += D[i - a]