#5795. A. Dragons
A. Dragons
A. Dragons
🐉 A. Dragons(击败所有巨龙)
时间限制: 2 秒 内存限制: 256 MB
📘 题目背景
Kirito 被困在一款 MMORPG 游戏的某一关卡中。 想要进入下一关,他必须击败这一关卡中的 n 条巨龙。
Kirito 和每一条巨龙都有一个 战斗力(strength),用整数表示。
⚔️ 战斗规则
- Kirito 的初始战斗力为 s
- 第
i条巨龙的战斗力为x_i,击败它后可以获得额外战斗力y_i
当 Kirito 与某条巨龙战斗时:
- 如果 Kirito 的当前战斗力 ≤ 巨龙的战斗力 👉 Kirito 战败,游戏结束
- 如果 Kirito 的当前战斗力 > 巨龙的战斗力
👉 Kirito 获胜,战斗力增加
y_i
💡 Kirito 可以自行选择与巨龙战斗的顺序。
🎯 任务目标
请判断: Kirito 是否能在不失败的情况下,击败所有巨龙,从而进入下一关?
📥 输入格式
-
第一行:两个整数
s和ns:Kirito 的初始战斗力n:巨龙数量
-
接下来
n行: 每行两个整数x_i和y_ix_i:第i条巨龙的战斗力y_i:击败该巨龙后获得的战斗力奖励
📤 输出格式
-
输出一行:
YES—— 如果 Kirito 可以击败所有巨龙NO—— 否则
📌 数据范围
1 ≤ s ≤ 10^41 ≤ n ≤ 10^31 ≤ x_i ≤ 10^40 ≤ y_i ≤ 10^4
🧪 样例一
输入
2 2
1 99
100 0
输出
YES
说明
- 初始战斗力:2
- 先打战斗力为 1 的巨龙 → 获胜,战斗力变为
2 + 99 = 101 - 再打战斗力为 100 的巨龙 → 获胜
- 成功进入下一关
🧪 样例二
输入
10 1
100 100
输出
NO
说明
- Kirito 初始战斗力为 10
- 唯一一条巨龙战斗力为 100
- 无法取胜,失败
🧠 题目提示
这是一个经典的贪心策略问题:
-
关键思想: 👉 优先击败战斗力较小的巨龙
-
常见做法:
- 按
x_i(巨龙战斗力)从小到大排序 - 依次尝试击败
- 若某一步失败,直接输出
NO
- 按