#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 是否能在不失败的情况下,击败所有巨龙,从而进入下一关?


📥 输入格式

  • 第一行:两个整数 sn

    • s:Kirito 的初始战斗力
    • n:巨龙数量
  • 接下来 n 行: 每行两个整数 x_iy_i

    • x_i:第 i 条巨龙的战斗力
    • y_i:击败该巨龙后获得的战斗力奖励

📤 输出格式

  • 输出一行:

    • YES —— 如果 Kirito 可以击败所有巨龙
    • NO —— 否则

📌 数据范围

  • 1 ≤ s ≤ 10^4
  • 1 ≤ n ≤ 10^3
  • 1 ≤ x_i ≤ 10^4
  • 0 ≤ 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
  • 无法取胜,失败

🧠 题目提示

这是一个经典的贪心策略问题

  • 关键思想: 👉 优先击败战斗力较小的巨龙

  • 常见做法:

    1. x_i(巨龙战斗力)从小到大排序
    2. 依次尝试击败
    3. 若某一步失败,直接输出 NO