atcoder#ABC273D. [ABC273D] LRUD Instructions

[ABC273D] LRUD Instructions

配点 : 400400

問題文

HHWW 列のグリッドがあります。上から ii 行目、左から jj 列目にあるマスをマス (i,j)(i, j) で表します。 NN 個のマス (r1,c1),(r2,c2),,(rN,cN)(r_1, c_1), (r_2, c_2), \ldots, (r_N, c_N) は壁になっています。

はじめ、高橋君はマス (rs,cs)(r_\mathrm{s}, c_\mathrm{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_\mathrm{s} \leq H
  • 1csW1 \leq c_\mathrm{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)
  • すべての i=1,2,,Ni = 1, 2, \ldots, Nについて、(rs,cs)(ri,ci)(r_\mathrm{s}, c_\mathrm{s}) \neq (r_i, c_i)
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • did_iLRUD のいずれかの文字
  • 1li1091 \leq l_i \leq 10^9
  • did_i 以外の入力値は整数

入力

入力は以下の形式で標準入力から与えられる。

HH WW rsr_\mathrm{s} csc_\mathrm{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 番目までの指示を実行した直後に高橋君がいるマス (Ri,Ci)(R_i, C_i)ii 行目に出力せよ。

R1R_1 C1C_1

R2R_2 C2C_2

\vdots

RQR_Q CQC_Q

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

与えられるグリッドと高橋君の初期位置は下記の通りです。 ここで、# は壁のマスを、T は高橋君がいるマスを表し、. がその他のマスを表します。

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

11 つ目の指示に対して高橋君は、左に 22 マス移動し、高橋君の位置は下記の通り、マス (4,2)(4, 2) になります。

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

22 つ目の指示に対して高橋君は、上に 11 マスに移動した後、次の移動先が壁であるために「何もしない」を 22 回行います。その結果、高橋君の位置は下記の通り、マス (3,2)(3, 2) になります。

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

33 つ目の指示に対して高橋君は、左に 11 マス移動した後、次の移動先となるマスが存在しないために「何もしない」を 11 回行います。その結果、高橋君の位置は下記の通り、マス (3,1)(3, 1) になります。

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

44 つ目の指示に対して高橋君は、右に 44 マス移動し、高橋君の位置は下記の通り、マス (3,5)(3, 5) になります。

...#.
.#...
....T
.....
..#..
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
6 3
5 3
5 1
6 1
4 1
6 1
4 1
4 2
4 1
5 1