結果

問題 No.424 立体迷路
ユーザー aimyaimy
提出日時 2017-04-24 15:13:44
言語 Haskell
(9.8.2)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 768 bytes
コンパイル時間 1,172 ms
コンパイル使用メモリ 148,608 KB
最終ジャッジ日時 2024-07-05 07:14:29
合計ジャッジ時間 1,507 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.8.2/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )

Main.hs:1:1: error: [GHC-87110]
    Could not load module ‘Data.Graph’.
    It is a member of the hidden package ‘containers-0.6.8’.
    Use -v to see a list of the files searched for.
  |
1 | import Data.Graph
  | ^^^^^^^^^^^^^^^^^

ソースコード

diff #

import Data.Graph
import Data.Char
import Data.Bool
import Control.Monad

idx w x y = x*w + y

main = do
 [h,w] <- map read . words <$> getLine
 [sx,sy,gx,gy] <- map read . words <$> getLine
 bs <- map digitToInt . filter isDigit <$> getContents
 putStrLn (bool "NO" "YES" (maze h w (sx-1) (sy-1) (gx-1) (gy-1) bs))

maze h w sx sy gx gy bs = path g (idx w sx sy) (idx w gx gy)
 where
  g = buildG (0,h*w-1) $ do
   x1 <- [0..h-1]
   y1 <- [0..w-1]
   x2 <- [0..h-1]
   y2 <- [0..w-1]
   let v1 = idx w x1 y1
   let v2 = idx w x2 y2
   let d = abs (v1-v2)
   guard (elem d [1,w] || (elem d [2,2*w] && bs!!v1==bs!!v2 && bs!!(div (v1+v2) 2) < bs!!v1))
   guard (if elem d [1,2] then div v1 w == div v2 w else True)
   guard (abs (bs!!v1 - bs!!v2) <= 1)
   return (v1,v2)
0