atcoder#ABC273D. [ABC273D] LRUD Instructions

[ABC273D] LRUD Instructions

题目描述

H H W W 列のグリッドがあります。上から i i 行目、左から j j 列目にあるマスをマス (i, j) (i,\ j) で表します。
N N 個のマス (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}) にいます。

高橋君に Q Q 個の指示が与えられます。 i = 1, 2, , Q i\ =\ 1,\ 2,\ \ldots,\ Q について、i i 番目の指示は文字 di d_i と正整数 li l_i の組で表されます。di d_i LRUD のいずれかの文字であり、それぞれ左、右、上、下の方向を表します。

i i 番目の指示に対して高橋君は下記の行動を li l_i 回繰り返します。

現在いるマスに対して、di d_i が表す向きに壁のないマスが隣接しているなら、そのマスに移動する。 そのようなマスが存在しない場合は、何もしない。

i = 1, 2, , Q i\ =\ 1,\ 2,\ \ldots,\ Q について、i i 番目までの指示を実行した直後に高橋君がいるマスを出力してください。

输入格式

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

H H W W rs r_\mathrm{s} cs c_\mathrm{s} N N r1 r_1 c1 c_1 r2 r_2 c2 c_2 \vdots rN r_N cN c_N Q Q d1 d_1 l1 l_1 d2 d_2 l2 l_2 \vdots dQ d_Q lQ l_Q

输出格式

Q Q 行出力せよ。 下記の形式にしたがい、i = 1, 2, , Q i\ =\ 1,\ 2,\ \ldots,\ Q について、i i 番目までの指示を実行した直後に高橋君がいるマス (Ri, Ci) (R_i,\ C_i) i i 行目に出力せよ。

R1 R_1 C1 C_1 R2 R_2 C2 C_2 \vdots RQ R_Q CQ C_Q

题目大意

你有一个 h×wh \times w 的矩阵,矩阵上有 NN 个障碍物,现在给你 QQ 次询问,问向 RiR_i 的方向走 CiC_i 步到哪里了。 前一步能影响后一步,障碍物不能越过,不能走出边界

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
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

提示

制約

  • 2  H, W  109 2\ \leq\ H,\ W\ \leq\ 10^9
  • 1  rs  H 1\ \leq\ r_\mathrm{s}\ \leq\ H
  • 1  cs  W 1\ \leq\ c_\mathrm{s}\ \leq\ W
  • 0  N  2 × 105 0\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1  ri  H 1\ \leq\ r_i\ \leq\ H
  • 1  ci  W 1\ \leq\ c_i\ \leq\ W
  • $ i\ \neq\ j\ \Rightarrow\ (r_i,\ c_i)\ \neq\ (r_j,\ c_j) $
  • すべての i = 1, 2, , N i\ =\ 1,\ 2,\ \ldots,\ N について、(rs, cs)  (ri, ci) (r_\mathrm{s},\ c_\mathrm{s})\ \neq\ (r_i,\ c_i)
  • 1  Q  2 × 105 1\ \leq\ Q\ \leq\ 2\ \times\ 10^5
  • di d_i LRUD のいずれかの文字
  • 1  li  109 1\ \leq\ l_i\ \leq\ 10^9
  • di d_i 以外の入力値は整数

Sample Explanation 1

与えられるグリッドと高橋君の初期位置は下記の通りです。 ここで、# は壁のマスを、T は高橋君がいるマスを表し、. がその他のマスを表します。 ...#. .#... ..... ...T. ..#.. 1 1 つ目の指示に対して高橋君は、左に 2 2 マス移動し、高橋君の位置は下記の通り、マス (4, 2) (4,\ 2) になります。 ...#. .#... ..... .T... ..#.. 2 2 つ目の指示に対して高橋君は、上に 1 1 マスに移動した後、次の移動先が壁であるために「何もしない」を 2 2 回行います。その結果、高橋君の位置は下記の通り、マス (3, 2) (3,\ 2) になります。 ...#. .#... .T... ..... ..#.. 3 3 つ目の指示に対して高橋君は、左に 1 1 マス移動した後、次の移動先となるマスが存在しないために「何もしない」を 1 1 回行います。その結果、高橋君の位置は下記の通り、マス (3, 1) (3,\ 1) になります。 ...#. .#... T.... ..... ..#.. 4 4 つ目の指示に対して高橋君は、右に 4 4 マス移動し、高橋君の位置は下記の通り、マス (3, 5) (3,\ 5) になります。 ...#. .#... ....T ..... ..#..