#P3597. 警告:铁幕装置启动!

警告:铁幕装置启动!

警告:铁幕装置启动!

现在你有一辆天启坦克,这是你唯一的单位了,请务必保护好它。

image

我方已经预判了敌方的若干次空袭,以及每一次空袭对你的坦克造成的伤害。

现在你还有一个铁幕装置,这个装置可以让你的坦克短时间内无敌。具体的来说,假设铁幕装置在第x秒启动,你的坦克会在[x,x+t)秒内时间无敌(即铁幕的持续时间为t),但是铁幕下一次启动最早时间为​第x+T秒(即冷却时间为T秒),请明智地使用它。

image

image

已知天启坦克有 h点血量,第i内的敌方的空袭造成的伤害为a[i],问是否有一种方案可以让天启坦克存活下来。

输入格式

第一行一个数字Q,表示一共有Q组测试用例。这样你们就不能直接输出"YES"、"NO"骗分了嘿嘿

每个测试用例的第一行有四个整数n、t、T、h,表示第1到第n秒内遭受空袭,铁幕持续时间为t,铁幕冷却时间为T,天启坦克血量为h

每个测试用例第二行有n个整数,第i个数字a[i]代表第i秒内遭受的空袭会造成的损害,如果第i秒铁幕没有施加在天启坦克上,你的坦克的血量就会减少a[i]。如果天启坦克血量变为负值,则坦克无法存活。(如果天启坦克血量为0,则天启坦克可以恰好存活)

数据范围

对于每个测试点保证

0<n1000,0000 < n \leqslant 1000,000 0<tT1000,0000<t \leqslant T \leqslant 1000,000 0h,ai1000,000,0000 \leqslant h,a_i \leqslant 1000,000,000 n1000,000\sum_{}n \leqslant 1000,000

输出格式

对于每个用例,输出一行答案:若天启坦克可以存活输出"YES",否则输出"NO"。

输入样例1:

2
10 1 2 8
3 1 1 6 4 4 3 9 0 6 
10 1 2 9
3 1 1 6 4 4 3 9 0 6

输出样例1:

NO
YES

输入样例2:

2
10 2 3 161
51 42 93 59 69 81 41 27 75 11
10 2 3 162
51 42 93 59 69 81 41 27 75 11

输出样例2:

NO
YES