CF1633C.Kill the Monster

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

Kill the Monster

题目描述

Monocarp 正在玩一款电脑游戏。在这款游戏中,他的角色需要与不同的怪物战斗。

角色与怪物之间的战斗规则如下。假设角色初始生命值为 hCh_C,攻击力为 dCd_C;怪物初始生命值为 hMh_M,攻击力为 dMd_M。战斗由若干回合组成:

  1. 角色攻击怪物,使怪物的生命值减少 dCd_C
  2. 怪物攻击角色,使角色的生命值减少 dMd_M
  3. 角色再次攻击怪物,使怪物的生命值减少 dCd_C
  4. 怪物再次攻击角色,使角色的生命值减少 dMd_M
  5. 以此类推,直到战斗结束。

当某一方的生命值变为非正数(即 00 或更小)时,战斗结束。如果怪物的生命值变为非正数,则角色获胜,否则怪物获胜。

Monocarp 的角色当前生命值为 hCh_C,攻击力为 dCd_C。他想要击败一个生命值为 hMh_M,攻击力为 dMd_M 的怪物。在战斗开始前,Monocarp 可以花费最多 kk 枚金币来升级角色的武器和/或护甲;每次升级消耗一枚金币,每次武器升级会使角色的攻击力增加 ww,每次护甲升级会使角色的生命值增加 aa

如果 Monocarp 能够最优地分配金币进行升级,他的角色能否击败怪物?

输入格式

第一行包含一个整数 tt1t51041 \le t \le 5 \cdot 10^4),表示测试用例的数量。每个测试用例包含三行:

第一行包含两个整数 hCh_CdCd_C1hC10151 \le h_C \le 10^{15}1dC1091 \le d_C \le 10^9),表示角色的生命值和攻击力;

第二行包含两个整数 hMh_MdMd_M1hM10151 \le h_M \le 10^{15}1dM1091 \le d_M \le 10^9),表示怪物的生命值和攻击力;

第三行包含三个整数 kkwwaa0k21050 \le k \le 2 \cdot 10^50w1040 \le w \le 10^40a10100 \le a \le 10^{10}),分别表示 Monocarp 最多可以花费的金币数、每次武器升级增加的攻击力、每次护甲升级增加的生命值。

所有测试用例中 kk 的总和不超过 21052 \cdot 10^5

输出格式

对于每个测试用例,如果通过最优分配升级,Monocarp 能够击败怪物,则输出 YES;否则输出 NO。

说明/提示

在第一个样例中,Monocarp 可以花费一枚金币升级武器(攻击力变为 55),此时战斗过程中的生命值变化如下:$(h_C, h_M) = (25, 9) \rightarrow (25, 4) \rightarrow (5, 4) \rightarrow (5, -1)$。战斗以 Monocarp 的胜利结束。

在第二个样例中,Monocarp 无法击败怪物。

在第三个样例中,Monocarp 没有金币,无法进行升级。但初始属性已经足够击败怪物。

在第四个样例中,Monocarp 有 44 枚金币。要击败怪物,他需要花费 22 枚金币升级武器,22 枚金币升级护甲。

由 ChatGPT 4.1 翻译

样例

4
25 4
9 20
1 1 10
25 4
12 20
1 1 10
100 1
45 2
0 4 10
9 2
69 2
4 2 7
YES
NO
YES
YES

在线编程 IDE

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