#abc303c. [abc303_c]Dash

[abc303_c]Dash

问题描述

在二维平面上,高桥初始位于点 (0,0)(0, 0),初始生命值为 HHMM 个恢复生命值的物品被放置在平面上,第 ii 个物品位于 (xi,yi)(x_i,y_i)

高桥将进行 NN 步移动。第 ii 步移动如下:

  1. (x,y)(x,y) 是他当前的坐标。他消耗 1 点生命值来移动到以下点,根据 SS 的第 ii 个字符 SiS_i

    • 如果 SiS_iR,则移动到点 (x+1,y)(x+1,y)
    • 如果 SiS_iL,则移动到点 (x1,y)(x-1,y)
    • 如果 SiS_iU,则移动到点 (x,y+1)(x,y+1)
    • 如果 SiS_iD,则移动到点 (x,y1)(x,y-1)
  2. 如果高桥的生命值变为负数,他就会虚脱并停止移动。否则,如果移动到的点上有一个物品,并且他的生命值严格小于 KK,那么他会消耗该物品,使他的生命值变为 KK

判断高桥是否能在完成 NN 步移动而不被晕倒。

约束条件

  • 1N,M,H,K2×1051 \leq N,M,H,K \leq 2 \times 10^5
  • SS 是一个长度为 NN 的字符串,由 RLUD 组成。
  • xi,yi2×105|x_i|,|y_i| \leq 2 \times 10^5
  • (xi,yi)(x_i, y_i) 两两不相同。
  • 输入中的所有值都是整数,除了 SS

输入

输入以以下格式从标准输入给出:

NN MM HH KK SS x1x_1 y1y_1 \vdots xMx_M yMy_M

输出

如果他能完成 NN 步移动而不被晕倒,则输出 Yes;否则输出 No


示例输入 1

4 2 3 1
RUDL
-1 -1
1 0

示例输出 1

Yes

初始时,高桥的生命值为 33。我们描述各个移动如下:

  • 11 步移动:SiS_iR,所以他移动到点 (1,0)(1,0)。他的生命值减少为 22。尽管点 (1,0)(1,0) 上放置了一个物品,但他没有消耗它,因为他的生命值不小于 K=1K=1

  • 22 步移动:SiS_iU,所以他移动到点 (1,1)(1,1)。他的生命值减少为 11

  • 33 步移动:SiS_iD,所以他移动到点 (1,0)(1,0)。他的生命值减少为 00。点 (1,0)(1,0) 上放置了一个物品,并且他的生命值小于 K=1K=1,所以他消耗该物品使得他的生命值变为 11

  • 44 步移动:SiS_iL,所以他移动到点 (0,0)(0,0)。他的生命值减少为 00

因此,他可以进行这 44 步移动而不会虚脱,所以应该输出 Yes。注意,生命值可能达到 00


示例输入 2

5 2 1 5
LDRLD
0 0
-1 -1

示例输出 2

No

初始时,高桥的生命值为 11。我们描述各个移动如下:

  • 11 步移动:SiS_iL,所以他移动到点 (1,0)(-1,0)。他的生命值减少为 00

  • 22 步移动:SiS_iD,所以他移动到点 (1,1)(-1,-1)。他的生命值减少为 1-1。现在生命值为 1-1,他虚脱并停止移动。

因此,他将会晕倒,所以应该输出 No

注意虽然初始点 (0,0)(0,0) 上有一个物品,但在第 11 步移动之前,他没有消耗它,因为物品只有在移动之后才会被消耗。