0104: Magical Tiles

不思議なタイル

問題ページ

解き方

5種類のタイルの情報を辞書に登録しておき、タイルの文字列を読み取り辞書に基づき動くだけ。条件より部屋の外に出ることはないので特に注意することはない。LOOPするかしないかの判定はタイルの枚数より判定する。なぜなら、同じタイルに来ない限り移動する回数はタイルの枚数以下になるから。

コード(python)

info = {">": (0, 1), "<": (0, -1), "^": (-1, 0), "v": (1, 0), ".": (-1, -1)}

while True:
    H, W = map(int, input().split())
    if H == 0:
        break
    tiles = [input() for _ in range(H)]
    i = j = 0
    for _ in range(H*W):
        a, b = info[tiles[i][j]]
        if a == b == -1:
            print(j, i)
            break
        i += a
        j += b
    else:
        print("LOOP")