#SZSY1003. 勇者斗恶龙
勇者斗恶龙
题目描述
一条恶龙有 个头,初始生命值为 。勇士可以依次选择头进行攻击,每个头最多被攻击一次。
攻击第 个头时,恶龙先损失 点生命值。如果生命值变为 ,恶龙立即被击败,不再恢复生命值;否则,它随后恢复 点生命值。
判断能否击败恶龙。若可以,还要求出最少的攻击次数。初始生命值已经为 时,不需要进行攻击。
输入格式
第一行包含两个整数 。
接下来 行,第 行包含两个整数 ,分别表示攻击第 个头造成的伤害上限和未被击败时恢复的生命值。
输出格式
如果能够击败恶龙,第一行输出 Yes,第二行输出最少的攻击次数。
否则,只输出一行 No。
数据范围
对于所有测试数据,,,。
子任务
| 编号 | 分值 | 缩减范围 | 附加限制 |
|---|---|---|---|
| 1 | 20 | — | |
| 2 | 30 | ||
| 3 | 10 | — | 对所有 , |
| 4 | 存在 使 | ||
| 5 | 30 | — |
样例 1
3 5
2 3
2 0
1 0
Yes
3
样例 1 说明
依次攻击第 个头:生命值先从 变为 ,再变为 ,最后一次攻击使生命值变为 ,此时不会恢复生命值。任意两次攻击能够造成的伤害总和都小于 ,所以至少需要三次。
样例 2
3 6
2 3
2 0
1 0
No