Slide 45
Slide 45 text
#'4ͷ࣮Λม͑Δ͜ͱͳ͘ɺؔ GΛهड़͢Δ͚ͩͰ͕ղ͚Δ
main = do
[h, w] <- getInts
grid <- getCharGrid ((1, 1), (h, w))
let dist = bfs f (+) (-1) (bounds grid) [((1, 1), 0)]
where
f v =
[ (u, 1)
| d <- [(1, 0), (0, 1), (-1, 0), (0, -1)],
let u = v + d,
inRange (bounds grid) u,
case (grid ! v, grid ! u) of
('s', 'n') -> True
('n', 'u') -> True
('u', 'k') -> True
('k', 'e') -> True
('e', 's') -> True
_ -> False
]
printYn $ dist ! (h, w) /= -1
ʮϚε WˠW͔Β౸ୡͰ͖ΔϚε VͷϦετʯ
ͱ͍͏ࣸ૾
άϦουͷ্Լࠨӈʹ݅Λຬͨ͢ભҠઌ͕͋ΔͳΒ
ͦΕΛྻڍ