Count Arithmetic Subarrays
题目描述
给你一个由 N 个正整数组成的序列 A=(A1,A2,…,AN)。
求满足 1≤l≤r≤N 的整数对 (l,r) 的个数,使得子序列 (Al,Al+1,…,Ar) 构成等差数列。
序列 (x1,x2,…,x∣x∣) 当且仅当存在一个 d 使得 x_{i+1}-x_i=d\ (1\leq i < |x|) 时为等差数列。
特别地,长度为 1 的序列总是等差数列。
输入格式
输入从标准输入按以下格式给出:
N
A1 A2 … AN
输出格式
输出答案。
4
3 6 9 3
8
5
1 1 1 1 1
15
8
87 42 64 86 72 58 44 30
22
提示
1≤N≤2×105
1≤Ai≤109
所有输入值均为整数。满足条件的整数对 (l,r) 有八个:(1,1),(2,2),(3,3),(4,4),(1,2),(2,3),(3,4),(1,3)。
确实,当 (l,r)=(1,3) 时,(Al,…,Ar)=(3,6,9) 是一个等差数列,因此满足条件。
但是,当 (l,r)=(2,4) 时,(Al,…,Ar)=(6,9,3) 不是等差数列,因此不满足条件。
所有整数对 (l,r) (1≤l≤r≤5) 都满足条件。
标签: AtCoder|abc369C
来源
AtCoder|abc369C