大家都知道,张博士交际广泛,为了更好的与人交流,张博士每天都需要发送大量的短信。今天又是忙碌的一天,张博士需要在时刻m1,m2,…mn (mi<mi+1)共发送n条消息。很不幸的是,张博士昨天晚上忘记给手机充电了,在0时刻,张博士的手机只剩下f个单位的电量,此时手机是开机状态。
张博士的手机每开机一个单位的时间就会损失a个单位的电量。而且,在任何时候,张博士都可以关闭手机,稍后可以再打开手机(显然,在关机时间内,手机是不会耗电的)。但是,每次关机再开机会消耗b个单位的电量。另外,我们认为开机、关机是即时的,不会消耗时间,即你可以在x时刻打开手机并同时发送消息,反之亦然,在x时刻发送消息并同时关闭手机。
在任意一个时刻,如果手机的电量变为0(即手机电量<=0),则无法发送信息。
张博士想知道,他是否可以在不给手机充电的情况下完成所有短信的发送?请聪明的你编程帮他完成吧。
第一行包含一个整数t(1≤t≤1e4)——测试用例的数量。
每个测试用例两行:
第一行共四个整数:n, f, a, b (1≤n≤2e5, 1≤f, a,
b≤1e9), n为所需要发送的短信数量,f为初始手机电量,a为开机一个单位时间所消耗的电量,b为关机再开机所消耗的电量。
第二行为n个整数:m1,m2,…mn (1≤mi≤1e9, mi<mi+1),mi为发送第i条短信的时刻,即张博士需要在mi时刻发送第i条短信。
测试数据确保所有测试用例的n之和不超过2e5。
在第一个测试样例中,n=1,f=3,a=1,b=5,只需要在时刻3发送一条短信。显然,按照题意,在时刻0手机共有3个单位的电量。如果一直保持开机状态,则在时刻3手机剩余电量为:f-(3-0)=3-(3-0)=0,此时无法发送短信。如果选择在时刻0关机,在时刻3再开机,此时电量为:f-b=3-5=-2<=0,则仍然无法发送短信。因此,张博士无法完成所有短信的发送任务。
在第二个测试样例中,n=7,f=21,a=1,b=3,共需要发送7条短信。可以这样规划:
在时刻0关机,时刻4开机,发送第一条短信,剩余电量为:21-3=18;
然后一直开机到时刻6,发送第二条短信并立即关机,剩余电量为:18-(6-4)=16
在时刻10再开机,发送第3条短信,剩余电量为:16-3=13
然后一直开机到时刻13,发送第4条短信并关机,剩余电量为:13-(13-10)=10
再在时刻17开机,发送第5条短信,剩余电量为:10-3=7;
然后一直开机到时刻20,发送第6条短信后关机,剩余电量为:7-(20-17)=4
最后,在时刻26开机,消耗3个电量,此时剩余电量为4-3=1,发送第7条短信