ゲーム開発班のメンバーが迷路から脱出するゲームを作りました。
攻略する迷路は 行 列のグリッドで表され、各マスは空きマスか壁です。グリッドの上から 行目、左から 列目のマスを と表します。
また、迷路のいずれかの空きマスにはプレイヤー、敵、ゴール地点があります。
各マスは 個の文字列 で表され、
となっています。
このグリッド上でプレイヤーはゲームをします。
このゲームはプレイヤーと敵のターン制で進行し、先攻はプレイヤーです。
プレイヤーは自分のターンのおいて、隣接する空きマスに移動するか、移動しないことができます。
敵は自分のターンにおいて、現在のプレイヤーの位置まで到達するまでに経由しなければならない空きマスの数が少なくなるような、隣接する空きマスに移動します。
なお、そのような空きマスが複数存在する場合、上、右、下、左の優先順位で移動します。
プレイヤーと敵が同じマスに存在するようになった場合、プレイヤーの敗北です。
プレイヤーが敗北せずにゴール地点まで到達できるか判定してください。
なお、簡単のため、以下の条件を満たす が存在しない入力のみが与えられます。
入力は以下の形式で標準入力から与えられます。
プレイヤーが敗北せずにゴール地点に到達できるならばYes、そうでないならばNoと出力してください。
4 4 #E## #.#G #... #S##
Yes
プレイヤーはゴールまで直行することで攻略可能です。
4 4 #G## #.#S #... #E##
No
どのように動いたとしても、プレイヤーは敵と同じマスに到達してしまうため、攻略不可能です。
4 4 #.E# G.## ##.S ####
No
敵の行動にかかわらず、攻略不可能な場合もあります。
7 16 #S############## #.##...........# #.#..#.####.#### #...##.####....# #.#..#.#E#####.# #.##...........# ##############G#
Yes