小 A 是一位数据分析师,最近他在研究股票价格的波动规律。他记录了一支股票连续 N 天的价格,存储在数组 G 中。
为了分析价格的波动情况,他需要计算出某段区间内股票价格波动系数 W[L, R]。
波动系数计算方式为:W[L, R] = G[L] - G[L+1] + G[L+1] - G[L+2] + \dots + G[R-1] - G[R]。(即: \sum_{i=L}^{R-1}{(G_i−G_{i+1})} )
特别的,如果只有 1 天,则波动系数为 0。也就是说,对于任意的在 [1, n] 范围内的 i,有 W[i, i] = 0)。
如果某个连续的区间中的波动系数满足 W[L, R]=G[R]-G[L],则我们认为这几天的股价平稳。反之,如果 W[L, R] \neq G[R]-G[L],则我们认为这几天的股价波动。
请编程帮助小 A 计算出,在给定的 N 天的股价中,有多少个连续区间,满足股价波动的条件。
第一行一个整数 T 表示记录了 T 只待分析的股票的数据。
对于每只股票的数据:
第一行一个整数 N 表示记录的天数。
第二行 N 个整数 G_1,G_2, \ldots G_n 表示每天的股价。
对于每组数据,输出一行一个整数表示答案。
1 4 10 20 20 10
4
2 6 10 20 30 10 20 30 8 10 30 10 20 40 20 10 30
12 23
区间 [1, 2]、[1, 4]、[2, 4]、[3, 4] 均满足股价波动的条件。
如:区间 [2, 4] 的波动系数 G[2,4]=20-20 + 20-10=10,但 G[4]-G[2]=10-20=-10。因此,该区间不满足股价平稳的条件。
对于所有的测试数据,满足 1 \leq T \leq 10^5, 1 \le N \le 10^5, \sum n ≤ 10^5,0 ≤ G_i ≤ 10^9 。
测试点 | 特殊性质 |
---|---|
1 \sim 3 | A,B |
4 \sim 6 | B |
7 \sim 10 | 无 |
特殊性质 A:保证 1 \le N \le 1000。
特殊性质 B:保证 G_i=0 或者 G_i=1。
时间限制 | 1 秒 |
内存限制 | 512 MB |
提交次数 | 487 |
通过人数 | 96 |
金币数量 | 0 枚 |
难度 | 入门 |