import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### # https://ikatakos.com/pot/programming_algorithm/string_search # Sの各文字を中心とする回文の奇数長の最大長を返す,O(S) # 各文字の間に$を挟むことで偶数長も検出可 def Manacher(s: str): n = len(s) radius = [0] * n i = j = 0 while i < n: while i - j >= 0 and i + j < n and s[i - j] == s[i + j]: j += 1 radius[i] = j k = 1 while i - k >= 0 and i + k < n and k + radius[i - k] < j: radius[i + k] = radius[i - k] k += 1 i += k j -= k return [(r * 2 - 1) // 2 for r in radius] n = ni() a = na() b = [a[i+1] - a[i] for i in range(n-1)] c = [-10 ** 9] for i in range(n-1): c.append(b[i]) c.append(-10 ** 9) res = Manacher(c) # print(b) # print(res) ans = n for i in range(len(res)): ans += (res[i] + 1) // 2 print(ans)