#abc303c. [abc303_c]Dash
[abc303_c]Dash
问题描述
在二维平面上,高桥初始位于点 ,初始生命值为 。 个恢复生命值的物品被放置在平面上,第 个物品位于 。
高桥将进行 步移动。第 步移动如下:
-
设 是他当前的坐标。他消耗 1 点生命值来移动到以下点,根据 的第 个字符 :
- 如果 是
R
,则移动到点 ; - 如果 是
L
,则移动到点 ; - 如果 是
U
,则移动到点 ; - 如果 是
D
,则移动到点 。
- 如果 是
-
如果高桥的生命值变为负数,他就会虚脱并停止移动。否则,如果移动到的点上有一个物品,并且他的生命值严格小于 ,那么他会消耗该物品,使他的生命值变为 。
判断高桥是否能在完成 步移动而不被晕倒。
约束条件
- 是一个长度为 的字符串,由
R
、L
、U
和D
组成。 - 两两不相同。
- 输入中的所有值都是整数,除了 。
输入
输入以以下格式从标准输入给出:
输出
如果他能完成 步移动而不被晕倒,则输出 Yes
;否则输出 No
。
示例输入 1
4 2 3 1
RUDL
-1 -1
1 0
示例输出 1
Yes
初始时,高桥的生命值为 。我们描述各个移动如下:
-
第 步移动: 是
R
,所以他移动到点 。他的生命值减少为 。尽管点 上放置了一个物品,但他没有消耗它,因为他的生命值不小于 。 -
第 步移动: 是
U
,所以他移动到点 。他的生命值减少为 。 -
第 步移动: 是
D
,所以他移动到点 。他的生命值减少为 。点 上放置了一个物品,并且他的生命值小于 ,所以他消耗该物品使得他的生命值变为 。 -
第 步移动: 是
L
,所以他移动到点 。他的生命值减少为 。
因此,他可以进行这 步移动而不会虚脱,所以应该输出 Yes
。注意,生命值可能达到 。
示例输入 2
5 2 1 5
LDRLD
0 0
-1 -1
示例输出 2
No
初始时,高桥的生命值为 。我们描述各个移动如下:
-
第 步移动: 是
L
,所以他移动到点 。他的生命值减少为 。 -
第 步移动: 是
D
,所以他移动到点 。他的生命值减少为 。现在生命值为 ,他虚脱并停止移动。
因此,他将会晕倒,所以应该输出 No
。
注意虽然初始点 上有一个物品,但在第 步移动之前,他没有消耗它,因为物品只有在移动之后才会被消耗。