A1770 | 超能战士
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
为了消灭人类,怪兽协会向地球表面派出了 $n$ 只怪兽。第 $i$ 只怪兽有一个生命值 $h_i$ 和一个攻击力 $p_i$。
凭借他最后的一击,超能战士可以对所有活着的怪兽造成 $k$ 点伤害。换句话说,超能战士可以通过一次攻击降低所有怪兽 $k$ 点生命值(如果 $k0$)。
然而,在超能战士发动的每一次攻击之后,怪兽们都会反击。在他们的共同努力下,通过活着的最弱的怪兽的力量降低超能战士的攻击伤害。换句话说,在每次攻击后,将 $k$ 的值减去当前所有活着的怪兽中的最小 $p_i$。
最弱的怪兽是力量最小的怪兽。
如果怪兽的生命值严格大于 $0$,则它是活着的。
超能战士能够成功消灭所有怪兽吗?
凭借他最后的一击,超能战士可以对所有活着的怪兽造成 $k$ 点伤害。换句话说,超能战士可以通过一次攻击降低所有怪兽 $k$ 点生命值(如果 $k0$)。
然而,在超能战士发动的每一次攻击之后,怪兽们都会反击。在他们的共同努力下,通过活着的最弱的怪兽的力量降低超能战士的攻击伤害。换句话说,在每次攻击后,将 $k$ 的值减去当前所有活着的怪兽中的最小 $p_i$。
最弱的怪兽是力量最小的怪兽。
如果怪兽的生命值严格大于 $0$,则它是活着的。
超能战士能够成功消灭所有怪兽吗?
输入格式
输入的第一行包含一个整数 $t$ ($1 \le t \le 100$),表示有 $t$ 组数据。每组数据包含以下内容。
每组数据的第一行包含两个整数 $n$ 和 $k$ ($1 \le n, k \le 10^5$),表示怪兽的数量和超能战士的初始攻击伤害。接下来两行,每行包含 $n$ 个整数,分别是数组 $h$ 和 $p$ ($1 \le h_i, p_i \le 10^9$)。
保证所有数据 $n$ 的总和不超过 $30 \cdot 10^5$。
每组数据的第一行包含两个整数 $n$ 和 $k$ ($1 \le n, k \le 10^5$),表示怪兽的数量和超能战士的初始攻击伤害。接下来两行,每行包含 $n$ 个整数,分别是数组 $h$ 和 $p$ ($1 \le h_i, p_i \le 10^9$)。
保证所有数据 $n$ 的总和不超过 $30 \cdot 10^5$。
输出格式
对于每组数据,如果超能战士能够消灭所有怪兽,输出 YES,否则输出 NO。
输入输出样例
输入 #1
3 6 7 18 5 13 9 10 1 2 7 2 1 2 6 3 4 5 5 5 4 4 4 3 2 2 1 3 1 1 1
输出 #1
YES NO YES
在第一个样例中,在超能战士第一次攻击后,$h$ 和 $k$ 将更新为:
- $h: [11,0,6,2,3,0]$
- $k: 7-1 = 6$
- $h: [5,0,0,0,0,0]$
- $k: 6-2 = 4$
- $h: [1,0,0,0,0,0]$
- $k: 4-2 = 2$
- $h: [0,0,0,0,0,0]$
第二次攻击后:
第三次攻击后:
第四次攻击后:
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?