题目描述
H 行 W 列のグリッドがあります。上から i 行目、左から j 列目にあるマスをマス (i, j) で表します。
N 個のマス (r1, c1), (r2, c2), …, (rN, cN) は壁になっています。
はじめ、高橋君はマス (rs, cs) にいます。
高橋君に Q 個の指示が与えられます。 i = 1, 2, …, Q について、i 番目の指示は文字 di と正整数 li の組で表されます。di は L
、R
、U
、D
のいずれかの文字であり、それぞれ左、右、上、下の方向を表します。
i 番目の指示に対して高橋君は下記の行動を li 回繰り返します。
現在いるマスに対して、di が表す向きに壁のないマスが隣接しているなら、そのマスに移動する。 そのようなマスが存在しない場合は、何もしない。
i = 1, 2, …, Q について、i 番目までの指示を実行した直後に高橋君がいるマスを出力してください。
输入格式
入力は以下の形式で標準入力から与えられる。
H W rs cs N r1 c1 r2 c2 ⋮ rN cN Q d1 l1 d2 l2 ⋮ dQ lQ
输出格式
Q 行出力せよ。 下記の形式にしたがい、i = 1, 2, …, Q について、i 番目までの指示を実行した直後に高橋君がいるマス (Ri, Ci) を i 行目に出力せよ。
R1 C1 R2 C2 ⋮ RQ CQ
题目大意
你有一个 h×w 的矩阵,矩阵上有 N 个障碍物,现在给你 Q 次询问,问向 Ri 的方向走 Ci 步到哪里了。
前一步能影响后一步,障碍物不能越过,不能走出边界
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
- 1 ≤ rs ≤ H
- 1 ≤ cs ≤ W
- 0 ≤ N ≤ 2 × 105
- 1 ≤ ri ≤ H
- 1 ≤ ci ≤ W
- $ i\ \neq\ j\ \Rightarrow\ (r_i,\ c_i)\ \neq\ (r_j,\ c_j) $
- すべての i = 1, 2, …, Nについて、(rs, cs) = (ri, ci)
- 1 ≤ Q ≤ 2 × 105
- di は
L
、R
、U
、D
のいずれかの文字
- 1 ≤ li ≤ 109
- di 以外の入力値は整数
Sample Explanation 1
与えられるグリッドと高橋君の初期位置は下記の通りです。 ここで、#
は壁のマスを、T
は高橋君がいるマスを表し、.
がその他のマスを表します。 ...#. .#... ..... ...T. ..#..
1 つ目の指示に対して高橋君は、左に 2 マス移動し、高橋君の位置は下記の通り、マス (4, 2) になります。 ...#. .#... ..... .T... ..#..
2 つ目の指示に対して高橋君は、上に 1 マスに移動した後、次の移動先が壁であるために「何もしない」を 2 回行います。その結果、高橋君の位置は下記の通り、マス (3, 2) になります。 ...#. .#... .T... ..... ..#..
3 つ目の指示に対して高橋君は、左に 1 マス移動した後、次の移動先となるマスが存在しないために「何もしない」を 1 回行います。その結果、高橋君の位置は下記の通り、マス (3, 1) になります。 ...#. .#... T.... ..... ..#..
4 つ目の指示に対して高橋君は、右に 4 マス移動し、高橋君の位置は下記の通り、マス (3, 5) になります。 ...#. .#... ....T ..... ..#..