CF1923B.Monsters Attack!

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Monsters Attack!

题目描述

你正在玩一款电脑游戏。本关卡可以被建模为一条直线。你的角色位于这条直线的 00 点。有 nn 只怪物试图杀死你的角色,第 ii 只怪物的生命值为 aia_i,初始位置在 xix_i 点。

每一秒,发生以下事件:

  • 首先,你可以向怪物们最多发射 kk 发子弹。每颗子弹只能攻击一只怪物,并使其生命值减少 11。对于每颗子弹,你可以任意选择目标(例如,你可以把所有子弹都射向同一只怪物,也可以分别射向不同的怪物,或选择其他任意组合)。无论怪物的位置如何,任何怪物都可以被子弹攻击;
  • 然后,所有生命值小于等于 00 的怪物死亡;
  • 然后,所有存活的怪物向你靠近 11 个单位(你左边的怪物坐标加 11,你右边的怪物坐标减 11)。如果有任何怪物到达你的角色所在的 00 点,你就输了。

你能否在不让任何怪物到达你的角色之前,消灭所有 nn 只怪物?

输入格式

输入的第一行包含一个整数 tt1t31041 \le t \le 3 \cdot 10^4),表示测试用例的数量。

每个测试用例包含三行:

  • 第一行包含两个整数 nnkk1n31051 \le n \le 3 \cdot 10^51k21091 \le k \le 2 \cdot 10^9);
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1091 \le a_i \le 10^9);
  • 第三行包含 nn 个整数 x1,x2,,xnx_1, x_2, \dots, x_nnx1<x2<x3<<xnn-n \le x_1 < x_2 < x_3 < \dots < x_n \le nxi0x_i \ne 0)。

额外输入限制:所有测试用例中 nn 的总和不超过 31053 \cdot 10^5

输出格式

对于每个测试用例,如果你能在所有怪物到达你的角色之前消灭它们,输出 YES,否则输出 NO。

你可以用任意大小写输出答案。例如,yEs、yes、Yes 和 YES 都会被识别为肯定回答。

说明/提示

在第一个样例中,你可以这样操作:

  • 11 秒,向第 11 只怪物射 11 发子弹,向第 33 只怪物射 11 发子弹。此时第 11 只怪物死亡,第 22 只和第 33 只怪物向你靠近;
  • 22 秒,向第 22 只怪物射 22 发子弹。此时第 22 只怪物死亡,第 33 只怪物向你靠近;
  • 33 秒,向第 33 只怪物射 22 发子弹。此时第 33 只怪物死亡。

在第二个样例中,你每秒只能射 11 发子弹,所以第一秒只能杀死两只怪物中的一只。剩下的怪物会向你靠近并杀死你的角色。

由 ChatGPT 4.1 翻译

样例

5
3 2
1 2 3
-1 2 3
2 1
1 1
-1 1
4 10
3 4 2 5
-3 -2 1 3
5 3
2 1 3 2 5
-3 -2 3 4 5
2 1
1 2
1 2
YES
NO
YES
YES
NO

在线编程 IDE

建议全屏模式获得最佳体验