85 atcoder#ABC184E. [ABC184E] Third Avenue
[ABC184E] Third Avenue
配点 : 点
問題文
縦 マス、横 マスの 次元グリッドで表された街があります。
上から 行目、左から 列目のマスの情報が文字 により与えられます。 は S , G , . , # , a ~ z のいずれかです。
# は入ることができないマスを、a ~ z はテレポーターのあるマスを表します。
高橋くんははじめ S のマスにおり、 秒ごとに以下のいずれかの移動を行います。
- 現在いるマスと上下左右に隣り合う、
#でないマスに移動する。 - 今いるマスと同じ文字が書かれているマスを つ選び、そこにテレポートする。この移動は現在いるマスが
a~zのいずれかであるとき使える。
高橋くんが S のマスから G のマスに移動するのに必要な最短の時間を求めてください。
ただし、どうしても G のマスにたどり着けない場合は、代わりに -1 を出力してください。
制約
- は
S,G,.,#, 英小文字のいずれか SのマスとGのマスはちょうど つ存在する
入力
入力は以下の形式で標準入力から与えられる。
出力
S のマスから G のマスに移動するのに必要な最短時間を出力せよ。
S のマスから G のマスに移動する方法が存在しない場合は、代わりに -1 を出力せよ。
2 5
S.b.b
a.a.G
4
上から 行目、左から 列目のマスを で表すこととします。 はじめ、高橋くんは にいます。 例えば、以下のような手順で 秒で に移動することができます。
- から に移動する
- と同じ
aのマスである にテレポートする - から に移動する
- から に移動する
11 11
S##...#c...
...#d.#.#..
..........#
.#....#...#
#.....bc...
#.##......#
.......c..#
..#........
a..........
d..#...a...
.#........G
14
11 11
.#.#.e#a...
.b..##..#..
#....#.#..#
.#dd..#..#.
....#...#e.
c#.#a....#.
.....#..#.e
.#....#b.#.
.#...#..#..
......#c#G.
#..S...#...
-1