#CF1994C. Hungry Games

Hungry Games

饥饿游戏

时间限制:2 秒
空间限制:256 MB

Yaroslav 正在玩一款电脑游戏。在某一关卡中,他遇到了 nn 个排成一排的蘑菇。每个蘑菇都有其毒性等级;从左数第 ii 个蘑菇的毒性等级为 aia_i。Yaroslav 可以选择两个整数 1lrn1 \le l \le r \le n,然后他的角色将从左到右依次吃掉这个子段中的蘑菇,即编号为 l,l+1,l+2,,rl, l+1, l+2, \dots, r 的蘑菇。

角色有一个毒性值 gg,初始为 00。游戏由一个数值 xx 定义,表示任何时刻的最大毒性值。当吃掉一个毒性等级为 kk 的蘑菇时,会发生以下情况:

  • 角色的毒性值增加 kk
  • gxg \le x,则过程继续;否则,gg 变为 00,然后过程继续。

Yaroslav 想知道有多少种选择 llrr 的方式,使得最终的 gg 值不为 00。请你帮他求出这个数量!

输入格式

每个测试包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试用例数。接下来是各个测试用例的描述。

每个测试用例的第一行包含两个整数 nnxx1n21051 \le n \le 2 \cdot 10^51x1091 \le x \le 10^9)—— 蘑菇的数量和最大毒性值。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1091 \le a_i \le 10^9)。

保证所有测试用例中 nn 的总和不超过 21052 \cdot 10^5

输出格式

对于每个测试用例,输出一个整数 —— 使得最终 gg 不为 00 的子段数量。

样例输入

5
4 2
1 1 1 1
3 2
1 2 3
1 6
10
6 3
1 2 1 4 3 8
5 999999999
999999999 999999998 1000000000 1000000000 500000000

样例输出

8
2
0
10
7

样例解释

  • 第一个测试用例中,符合条件的子段有 (1,1)(1,1)(1,2)(1,2)(1,4)(1,4)(2,2)(2,2)(2,3)(2,3)(3,3)(3,3)(3,4)(3,4)(4,4)(4,4),共 88 个。
  • 第二个测试用例中,只有子段 (1,1)(1,1)(2,2)(2,2) 会使最终 gg 不为 00
  • 第三个测试用例中,唯一可能的子段会使 gg 变为 00