#ZS20264001. 等差数列的数量

等差数列的数量

题目描述

给定一个长度为 nn 的正整数序列 (a1,a2,,an) (a_1,a_2,\dots,a_n)

请你求出有多少对整数 (l,r)(l,r) 满足 1lrn1\leq l\leq r\leq n,并且数列 (al,al+1,,ar)(a_l,a_{l+1},\dots,a_r) 是等差数列。

这里,数列 (x1,x2,,xx)(x_1,x_2,\dots,x_{|x|}) 是等差数列,指存在某个 dd,使得对于所有 1i<x1\leq i<|x|,都有 xi+1xi=dx_{i+1}-x_i=d。特别地,长度为 11 的数列总是等差数列。

数据范围:

  • 1N2×1051\leq N \leq 2\times 10^5
  • 1Ai1091\leq A_i \leq 10^9
  • 输入均为整数

输入格式

第一行一个整数 nn,表示数组长度。

第二行 nn 个整数 a1,a2,...,ana_1,a_2,...,a_n

输出格式

输出一个整数,表示满足题目要求的数列数量。

4
3 6 9 3
8
5
1 1 1 1 1
15
8
87 42 64 86 72 58 44 30
22

提示

样例解释 1

满足条件的整数对 (l,r)(l,r)(1,1),(2,2),(3,3),(4,4),(1,2),(2,3),(3,4),(1,3)(1,1),(2,2),(3,3),(4,4),(1,2),(2,3),(3,4),(1,3)88 种。实际上,当 (l,r)=(1,3)(l,r)=(1,3) 时,(Al,,Ar)=(3,6,9)(A_l,\dots,A_r)=(3,6,9) 是等差数列,所以满足条件;而当 (l,r)=(2,4)(l,r)=(2,4) 时,(Al,,Ar)=(6,9,3)(A_l,\dots,A_r)=(6,9,3) 不是等差数列,因此不满足条件。

样例解释 2

所有满足 1lr51\leq l\leq r\leq 5 的整数对 (l,r)(l,r) 都满足条件。