题目描述
怀瑾正在玩一款积木游戏。在游戏中一行有n列积木,每列从1到n编号。所有积木的高度相同。
第i列的高度为Hi,即第i列中堆叠的积木数。
怀瑾以只能站在柱子顶部的角色进行游戏。一开始,角色站在第一列的顶部。游戏的目标是将角色移动到第 n 列的顶部。
该角色还有一个可以容纳无限多块的袋子。当角色位于第 i 列的顶部时,怀瑾可以根据需要多次执行以下三个动作之一:
如果柱子上至少有一个积木,则从第 i 个柱子的顶部取出一个积木并放入袋子中;
如果袋子里至少有一个积木,从袋子里取出一个积木放在第i列的顶部;
如果 i<n 且 |Hi−Hi+1|≤k,怀瑾移动到第 i+1 列的顶部。 k 是在游戏开始时给出的非负整数。请注意,只能移动到下一列。
在前两种类型的动作中,怀瑾保留在第 i 列中,并且值 Hi 发生变化。
怀瑾最初在袋子里有 m 个积木。怀瑾想知道是否有可能赢得比赛。帮助怀瑾找到她问题的答案。
输入
每个测试包含一个或多个测试用例。第一行包含测试用例的数量 t (1≤t≤1000)。测试用例的描述如下。
每个测试用例的第一行包含三个整数 n、m、k (1≤n≤100, 0≤m≤10^6, 0≤k≤10^6)——游戏中的列数,游戏中开始的积木数,语句中描述的非负整数k。
每个测试用例的第二行包含 n 个整数。第i个整数是hi(0≤Hi≤10^6),第i列的初始高度。
输出
对于每个测试用例,如果有可能赢得比赛,则打印“YES”。否则,打印“NO”。
5
3 0 1
4 3 5
3 1 2
1 4 7
4 10 0
10 20 10 20
2 5 5
0 11
1 9 9
99