#2053. [ABC303C] Dash
[ABC303C] Dash
题目描述
现在高桥在一个二维平面上。初始时他在 处,生命值为 。平面上有 个可以恢复生命值的物品,其中第 个物品的位置为 。
高桥将要进行 次移动,第 次移动的方式如下:
- 设高桥现在的位置是 ,那么他将会消耗 点生命值,同时:
- 如果 ,移动到 ;
- 如果 ,移动到 ;
- 如果 ,移动到 ;
- 如果 ,移动到 。
- 如果高桥的生命值降为负数,他就会倒下无法行动;否则,如果当前位置有一个可以恢复生命值的物品,且当前生命值小于 ,那么生命值将会恢复到 。
请判断高桥能否进行完所有的移动而不倒下。
输入格式
第一行输入四个数 。第二行输入一个长度为 的字符串 。接下来 行,第 行输入两个数 。
输出格式
如果高桥可以进行完所有 次移动,输出 Yes
,否则输出 No
。
4 2 3 1
RUDL
-1 -1
1 0
Yes
5 2 1 5
LDRLD
0 0
-1 -1
No
数据范围与约定
,。
保证 是一个只由字符 R
、L
、U
、D
构成的长度为 的字符串。保证 两两不同。保证所有输入的数均为整数。
样例 1 解释
最初,高桥的健康状况是 。我们将在下文中描述这些移动。
- 第 步: 是 "R",因此他移动到 点。他的生命值降低到了 。虽然在 点放置了一个道具,但他并没有吃掉它,因为他的生命值不低于 。
- 第 步: 是 "U",因此他移动到 点。他的生命值下降到了 。
- 第 步: 是 "D",所以他移动到了 点。他的生命值降低到 。在 点放置了一个道具,而他的生命值小于 ,所以他消耗了道具,使生命值变为 。
- 第 步: 是 "L",所以他移动到了 点。他的生命值降低到 。
因此输出 Yes
样例 2 解释
输出示例 2
最初,高桥的健康状况是 。
- 第 步: 是 "L",因此他移动到 点。他的健康值减少到 。
- 第 步: 是 "D",所以他移动到了 点。他的健康值减少到 。现在健康值为 ,他倒下并停止移动。
因此,输出 No
。
请注意,虽然在他的初始点 有一个物品,但他并没有在第 步移动之前消耗掉它,因为物品只有在移动之后才会消耗掉。