問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
マップの行数 H と列数 W , 障害物を '#' で移動可能な場所を '.' で表した H 行 W 列のマップ S_1 ... S_H , 現在の座標 sy , sx , 移動の回数 N が与えられます。
続けて N 回の移動の向き d_1 ... d_N と移動するマス数 l_1...l_N が与えられます。
はじめは北を向いています。
各移動が可能である場合、スタート位置を含む移動の際に通ったマップのマスを '*' に変更してください。
移動が可能でない場合、障害物やマップの端までできる限り移動をして通ったマップのマスを '*' に変更したのち、以降の移動を打ち切ってください。
移動が終了した時のマップを出力してください。
移動可能であるということは、以下の図の通り
「今いるマスから移動先のマスまでに障害物がない かつ 移動先がマップの範囲外でない」
ということを意味します。
なお、マスの座標系は左上端のマスの座標を ( y , x ) = ( 0 , 0 ) とし、
下方向が y 座標の正の向き、右方向が x 座標の正の向きとします。
H W sy sx N
S_0
...
S_(H-1)
d_1 l_1
...
d_N l_N
H 行の出力(マップの出力)
・ 移動の際に通ったマスを '*' にしたマップを H 行で出力してください。
T_0
...
T_(H-1)
すべてのテストケースにおいて、以下の条件をみたします。
・ 1 ≦ H, W ≦ 20
・ 1 ≦ N ≦ 100
・ 0 ≦ sy < H , 0 ≦ sx < W
・ 1 ≦ l_i ≦ 20
・ S_i は W 文字の文字列
・ マップ上の (sy, sx) のマスは必ず '.'
・ S の各文字は '.' または '#'
・ d_i は、L, R のいずれかであり、それぞれ 左・右 を意味します。
10 10 4 5 3
.......#..
..........
..........
#.........
..........
......#...
..........
....#.....
...#......
..........
L 3
R 1
R 3
.......#..
..........
..........
#.****....
..****....
......#...
..........
....#.....
...#......
..........
15 15 10 7 5
...............
...............
##.............
........#......
....#..........
...........#.#.
........#......
#...#...#......
#......#.......
...............
.#.............
..#............
...............
.......#..#...#
..........#....
L 3
L 1
R 2
R 1
L 1
...............
...............
##.............
........#......
....#..........
...........#.#.
........#......
#...#...#......
#......#.......
...............
.#..****.......
..#**..........
...............
.......#..#...#
..........#....