该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
小 A 是一位数据分析师,最近他在研究股票价格的波动规律。他记录了一支股票连续 N 天的价格,存储在数组 G 中。
为了分析价格的波动情况,他需要计算出某段区间内股票价格波动系数 W[L,R]。波动系数的计算方式为:
W[L,R] = G[L] - G[L+1] + G[L+1] - G[L+2] + … + G[R-1] - G[R]。即为 ∑i=LR−1(Gi−Gi+1)。
特别的,如果区间只有 1 天(即 L=R),则波动系数为 0,也就是对于任意 i∈[1,N],有W[i,i]=0。
如果某个连续区间的波动系数满足 W[L,R]=G[R]−G[L],则认为这几天的股价平稳;反之,若 W[L,R]=G[R]−G[L],则认为这几天的股价波动。
请编程帮助小 A 计算,在给定的 N 天股价中,有多少个连续区间满足股价波动的条件。
输入格式
- 第一行一个整数T,表示待分析的股票数量。
- 对于每只股票的数据:
- 第一行一个整数 N,表示记录的天数。
- 第二行 N 个整数 G1,G2,…,GN,表示每天的股价。
输出格式
对于每组数据,输出一行一个整数,表示满足股价波动条件的连续区间个数。
样例输入 1
1
4
10 20 20 10
样例输出 1
4
样例输入 2
2
6
10 20 30 10 20 30
8
10 30 10 20 40 20 10 30
样例输出 2
12
23
样例解释 1
满足股价波动条件的区间为 [1,2]、[1,3]、[2,4]、[3,4],共 4 个。
以区间[2,4] 为例:
- 波动系数 W[2,4]=20−20+20−10=10
- G[4]−G[2]=10−20=−10
- 两者不相等,因此属于股价波动区间。
数据规模与限制
- 对于所有测试数据,满足 1≤T≤10,1≤N≤105,0≤Gi≤109。