#4654. 波动系数

    ID: 4654 传统题 1000ms 256MiB 尝试: 2 已通过: 2 难度: 1 上传者: 标签>25-6-A组月赛T4下标计数连续性问题

波动系数

题目描述

小 A 是一位数据分析师,最近他在研究股票价格的波动规律。他记录了一支股票连续 NN 天的价格,存储在数组 GG 中。

为了分析价格的波动情况,他需要计算出某段区间内股票价格波动系数 W[L,R]W[L, R]。波动系数的计算方式为:

$$W[L, R] = G[L] - G[L+1] + G[L+1] - G[L+2] + dots + G[R-1] - G[R]$$

sumi=LR1(GiGi+1)sum_{i=L}^{R-1}{(G_i - G_{i+1})}

特别的,如果区间只有 11 天(即 L=RL = R),则波动系数为 00,也就是对于任意 iin[1,N]i in [1, N],有 W[i,i]=0W[i, i] = 0

如果某个连续区间的波动系数满足 W[L,R]=G[R]G[L]W[L, R] = G[R] - G[L],则认为这几天的股价平稳;反之,若 W[L,R]eG[R]G[L]W[L, R] e G[R] - G[L],则认为这几天的股价波动。

请编程帮助小 A 计算,在给定的 NN 天股价中,有多少个连续区间满足股价波动的条件。

输入格式

  • 第一行一个整数 TT,表示待分析的股票数量。
  • 对于每只股票的数据:
    • 第一行一个整数 NN,表示记录的天数。
    • 第二行 NN 个整数 G1,G2,dots,GNG_1, G_2, dots, 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 解释:满足股价波动条件的区间为 [1,2][1, 2][1,3][1, 3][2,4][2, 4][3,4][3, 4],共 44 个。

以区间 [2,4][2, 4] 为例:

  • 波动系数 W[2,4]=2020+2010=10W[2, 4] = 20 - 20 + 20 - 10 = 10
  • G[4]G[2]=1020=10G[4] - G[2] = 10 - 20 = -10
  • 两者不相等,因此属于股价波动区间。

数据范围

  • 对于所有测试数据,满足 1T101 \le T \le 101N1051 \le N \le 10^50Gi1090 \le G_i \le 10^9