#CF1994C. Hungry Games
Hungry Games
饥饿游戏
时间限制:2 秒
空间限制:256 MB
Yaroslav 正在玩一款电脑游戏。在某一关卡中,他遇到了 个排成一排的蘑菇。每个蘑菇都有其毒性等级;从左数第 个蘑菇的毒性等级为 。Yaroslav 可以选择两个整数 ,然后他的角色将从左到右依次吃掉这个子段中的蘑菇,即编号为 的蘑菇。
角色有一个毒性值 ,初始为 。游戏由一个数值 定义,表示任何时刻的最大毒性值。当吃掉一个毒性等级为 的蘑菇时,会发生以下情况:
- 角色的毒性值增加 。
- 若 ,则过程继续;否则, 变为 ,然后过程继续。
Yaroslav 想知道有多少种选择 和 的方式,使得最终的 值不为 。请你帮他求出这个数量!
输入格式
每个测试包含多个测试用例。第一行包含一个整数 ()—— 测试用例数。接下来是各个测试用例的描述。
每个测试用例的第一行包含两个整数 和 (,)—— 蘑菇的数量和最大毒性值。
第二行包含 个整数 ()。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出一个整数 —— 使得最终 不为 的子段数量。
样例输入
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
样例解释
- 第一个测试用例中,符合条件的子段有 、、、、、、 和 ,共 个。
- 第二个测试用例中,只有子段 和 会使最终 不为 。
- 第三个测试用例中,唯一可能的子段会使 变为 。