#abc273d. [abc273_d]LRUD Instructions

[abc273_d]LRUD Instructions

问题陈述

有一个大小为HHWW列的网格。(i,j)(i, j)表示从上方第ii行,从左方第jj列的方块。
NN个方块,(r1,c1),(r2,c2),,(rN,cN)(r_1, c_1), (r_2, c_2), \ldots, (r_N, c_N),有墙壁。

高桥最初位于方块(rs,cs)(r_s, c_s)

给出QQ个指令给高桥。对于i=1,2,,Qi = 1, 2, \ldots, Q,第ii个指令由一个字符did_i和一个正整数lil_i表示。did_iLRUD中的一个,分别表示左、右、上、下的方向。

根据第ii个方向,高桥重复以下动作lil_i次:

如果当前方块在did_i表示的方向上有一个没有墙壁的方块,移动到那个方块;否则,什么也不做。

对于i=1,2,,Qi = 1, 2, \ldots, Q,输出高桥在他按照前ii个指令后将会到达的方块。

约束条件

  • 2H,W1092 \leq H, W \leq 10^9
  • 1rsH1 \leq r_s \leq H
  • 1csW1 \leq c_s \leq W
  • 0N2×1050 \leq N \leq 2 \times 10^5
  • 1riH1 \leq r_i \leq H
  • 1ciW1 \leq c_i \leq W
  • ij(ri,ci)(rj,cj)i \neq j \Rightarrow (r_i, c_i) \neq (r_j, c_j)
  • (rs,cs)(ri,ci)(r_s, c_s) \neq (r_i, c_i)对于所有i=1,2,,Ni = 1, 2, \ldots, N
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • did_i是字符LRUD中的一个。
  • 1li1091 \leq l_i \leq 10^9
  • 输入中除了did_i之外的所有值都是整数。

输入

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

HH WW rsr_s csc_s NN r1r_1 c1c_1 r2r_2 c2c_2 \vdots rNr_N cNc_N QQ d1d_1 l1l_1 d2d_2 l2l_2 \vdots dQd_Q lQl_Q

输出

输出QQ行。对于i=1,2,,Qi = 1, 2, \ldots, Q,第ii行应该包含高桥按照前ii个指令后将会到达的方块(Ri,Ci)(R_i, C_i),格式如下:

R1R_1 C1C_1 R2R_2 C2C_2 \vdots RQR_Q CQC_Q


示例输入1

5 5 4 4
3
5 3
2 2
1 4
4
L 2
U 3
L 2
R 4

示例输出1

4 2
3 2
3 1
3 5

给定的网格和高桥的初始位置如下,其中 # 表示有墙壁的方块,T 表示高桥所在的方块,. 表示其他方块:

...#.
.#...
.....
...T.
..#..

给定第11个指令,高桥向左移动22个方块,最终到达方块(4,2)(4, 2),如下所示:

...#.
.#...
.....
.T...
..#..

给定第22个指令,高桥先向上移动11个方块,然后因为他的方向上相邻的方块有墙壁而“什么也不做”两次。结果,他最终到达方块(3,2)(3, 2),如下所示:

...#.
.#...
.T...
.....
..#..

给定第33个指令,高桥先向左移动11个方块,然后因为他的方向上没有方块而“什么也不做”一次。结果,他最终到达方块(3,1)(3, 1),如下所示:

...#.
.#...
T....
.....
..#..

给定第44个指令,高桥向右移动44个方块,最终到达方块(3,5)(3, 5),如下所示:

...#.
.#...
....T
.....
..#..

示例输入2

6 6 6 3
7
3 1
4 3
2 6
3 4
5 5
1 1
3 2
10
D 3
U 3
L 2
D 2
U 3
D 3
U 3
R 3
L 3
D 1

示例输出2

6 3
5 3
5 1
6 1
4 1
6 1
4 1
4 2
4 1
5 1