#CF1734D. 史莱姆逃生
史莱姆逃生
史莱姆逃生
- 时间限制:2 秒
- 内存限制:256 MiB
题目描述
数轴的位置 上各有一只史莱姆,第 只史莱姆的生命值为 。你控制位置 上的史莱姆,其初始生命值为 。位置 和 各有一个出口。
每次操作,你可以让自己的史莱姆向左或向右移动一格。如果新位置上还有一只史莱姆,你必须吸收它,生命值随之增加该史莱姆的生命值;被吸收的史莱姆消失。某些生命值可能为负,因此吸收后生命值可能下降。如果任意时刻你的生命值变成负数,你立即失败。
请判断能否在生命值始终非负的前提下,到达任意一个出口。
输入格式
第一行一个整数 ,表示测试用例数。
每个测试用例的第一行包含两个整数 ;第二行包含 个整数 。
输出格式
对每个测试用例输出一行:能够逃脱则输出 YES,否则输出 NO。
样例输入 1
6
7 4
-1 -2 -3 6 -2 -3 -1
3 1
232 -500 -700
7 4
-1 -2 -4 6 -2 -4 -1
8 4
-100 10 -7 6 -2 -3 6 -10
8 2
-999 0 -2 3 4 5 6 7
7 3
7 3 3 4 2 1 1
样例输出 1
YES
YES
NO
YES
NO
YES
数据范围
对所有数据:
- ;
- ,;
- ;
- ,且对 有 ;
- 单个输入文件内所有测试用例的 之和不超过 。
本题采用独立测试点计分,每个测试点等分。只有通过某测试点中的全部测试用例,才能获得该测试点分数。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 20 | |
| 2 | 40 | |
| 3 | 无特殊限制 |
提示
已吸收的位置始终形成一个包含 的连续区间。对于一侧,可以把从当前位置向外的一段看成一个整体:若穿过这一段所需的最低生命值不超过当前生命值,并且该段总和为正,穿过它只会让后续选择更宽裕。