题目描述
小x在玩一个rpg游戏,这个游戏是回合制战斗的:也就是每次战斗分为若干个回合,每个回合,你控制的任务选择一个操作,而对方也选择一个操作。(仙剑奇侠传1就是其中的一个) 现在小x要和最后的boss对决。
小x只有n轮的机会和boss战斗,如果超过n轮boss还没有被杀死,游戏就会结束。小x最初的体力是X,boss最初的体力是B。如果某一个人的体力值小于等于0,这个人就被消灭了,游戏也会结束。
小x每一轮都会受到伤害,这个伤害值为Di,Di在每一轮都不一定相同,现在通过秘笈,小x已经知道每一轮受到的伤害。
小x每回合有三种选择:
1) 进攻。每次进攻会对boos造成x点伤害,但是本轮他会受到boos对他造成的Di伤害。但是游戏默认小x先进攻,如果boss被杀掉,游戏立即结束,boss就不会对他产生伤害。
2) 防守。这轮他不会对boss造成任何伤害,boss对他也产生不了任何伤害。
3) 疗伤。这轮他会让自己体力恢复y点,但是本轮他还会受到Di的伤害。同样,是先回复体力值,再受到伤害。并且我们认为小x的体力无上限,每次的体力恢复都会累加上去。
现在到了对决的时刻,小x想知道,至少需要多少回合才能杀掉boss。如果根本杀不掉boss,他也想知道无论是自己挂掉还是对决到了N回合,他最多能给boss造成多少点伤害,从而为下一次对决做准备。
输入格式
第一行5个整数N,x,y,X,B。意义如题目,分别表示游戏有N轮,每次小x会对boss造成x点伤害,每次回复体力能回复y点,小x最初体力值是X,boss最初体力值是B。
接下来N行,每行一个整数Di,表示第i回合,小x受到的伤害为Di。
输出格式
如果能够杀掉boss,在第一行输出 "YES",在第二行输出一个整数 K,表示至少可以在 第 K 回合完成任务。
否则在第一行输出 "NO",在第二行输出一个整数 T,表示最多可以给boss造成T点伤害。
样例数据
input
4 1 1 3 3
1
10
1
10
output
YES
4
数据规模与约定
对于 50% 的数据,N≤1000。 对于 100% 的数据,1≤N≤10^5,1≤x, y≤10^4,1≤X,B≤10^9。
每回合受到的伤害 Di 满足1≤Di≤10^4。
时间限制:$1 \text {s}$
空间限制:$256 \text {MB}$