#427. 进击的砖块

进击的砖块

题目描述

你在玩一个游戏,已知在你面前有 nn 列砖块,你的背包中有 mm 个砖块,第 ii 列有 hih_i 个砖块。

在第 ii 列你可以进行下列操作

  • 如果你的背包中有砖块,你可以将将背包中的砖块垫在第 ii 列。
  • 如果第 ii 列有砖块,你可以捡起来,放在背包中,而且背包容量无限大。
  • 如果第 ii 列和第 i+1i+1 列的高度差少于或等于kk个砖块,你可以从第 ii 列跳到第 i+1i+1 列。

问你是否能从第一列从第 11 列跳到第 nn 列。 如果能,输出YESYES,如果不能,输出NONO

输入格式

多组测试数据

第一行输入组数T(1T1000){T}(1{\le}T{\le}1000)

对于每组测试数据

第一行输入 $n , m, k ({1{\le}n{\le}100},{0{\le}m{\le}10^6},{0{\le}k{\le}10^6})$ 。

第二行输入 nn 个数,第 ii 个数代表 hih_i

输出格式

对于每组数据,输出 YESNO

输入输出样例

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
YES
NO
YES
NO
YES

样例解释

  • 在第一个样例中:你可以从第 1 列取走一个方块,移动到第 2 列,将该方块放置在第 2 列上,然后再移动到第 3 列。
  • 在第二个样例中:你必须将背包里的方块放在第 1 列,才能到达第 2 列。但是他无法到达第 3 列,因为 h2h3=3>k|h_2 - h_3| = 3 > k,且没有办法缩小这个差距。
  • 在第五个样例中:你从一开始就已经站在第 nn 列上,所以游戏立即获胜。