# n=int(input())
# print(n)
# number_list=[0]
# for i in list(map(int,input().split())):
#     number_list.append(i)
# # print(number_list)
# result=0
# j=0
# while n>0:
#     j=n-1
#     while j>0:
#         if number_list[n] - number_list[j] == n - j:
#             result +=1
#         j-=1
#     n-=1
# print(result)
# 上面的方法由于暴力枚举,算法复杂度为n方,当数据达到100000时,程序无法在1s内运行结束,固需要优化

# number_list[j] -number_list[j] = j-i  等价于 number_list[j] -j = number_list[i] -i
# 故可以换一个思路,标记 number_list[m]-m出现的次数,将 number_list[m]-m 作为键值对写入字典,每次遍历时更新number_list[m]-m对应的值

n = int(input())
number_list = list(map(int, input().split()))
count = {}
result = 0 

for i in range(0,n):
    k = number_list[i] - i              # 计算所有的k=number_list[i]-i,把所有的k出现的次数统计在字典中
    if k in count:						# 如果k不是首次出现,则将k对应的值加1
        count[k] +=1
    else:
        count[k] =0						#如果k是首次出现,则将k添加为键,且设置其对应的值为0
    result += count[k]					#遍历到i=m时,如果此时的k(number_list[m]-m)已经在字典count的键中,则说明此时有count[k] 个 number_list[i]-i 与number_list[m]-m 相等,即有count[k]个谐距下标对,对count[k]进行累加得到result

print(result)