问题 4789 --魔法试炼

4789: 魔法试炼★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 271  解决: 63
[提交][状态][命题人:]

题目描述

炎炎夏日,鹏鹏要进行魔法试炼了。现在这里有n根魔法柱,第i根柱子高度为a[i],如果鹏鹏所在的柱子和下一根柱子的高度差值不超过k则可以继续前行。并且鹏鹏可以对自己所在的柱子做如下两种操作:

    1)增加高度x,x不得超过鹏鹏当前所拥有的魔法石块的数量。此时鹏鹏所拥有的魔法石块数量减少x。

    2)减少高度x,x不得超过当前柱子的高度,此时鹏鹏所拥有的魔法石块的数量增加x。

假设鹏鹏一开始拥有m块魔法石块,你能判断出鹏鹏能否到达第n根柱子吗。

输入

第一行为t,代表有t组数据。其中(1≤t≤1000)

对于每组数据来说,第一行有三个整数n,m,k。其中(1≤n≤100,0≤m,k≤1e6)

第二行为n个整数,第i个数字代表第i根柱子的高度为a[i]。其中(0≤a[i]≤1e6)

输出

t组数据输出t行,每行代表是否能到达第n根柱子。如果能到达输出YES否则输出NO。

样例输入
Copy
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
样例输出
Copy
YES
NO
YES
NO
YES

提示

1)针对第一组数据,鹏鹏可以从第一根柱子上拿走一块魔法石块,再将第二根柱的魔法石块增加一块,此时就可以到达第三根柱.

2)针对第二组数据,鹏鹏虽然可以把其拥有的一块魔法石块放到第一根柱上,从而能走到第二根柱. 但因为第二根柱和第三根柱的魔法石块相差3块,所以不可能从第二根柱走到第三根柱.

3)针对第五组数据,因为只有一根柱子,所以肯定能赢。

来源

[提交][状态]