結果
問題 | No.3 ビットすごろく |
ユーザー | yutasth |
提出日時 | 2017-05-05 12:58:42 |
言語 | Haskell (9.8.2) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 689 bytes |
コンパイル時間 | 127 ms |
コンパイル使用メモリ | 151,468 KB |
最終ジャッジ日時 | 2024-04-27 04:56:31 |
合計ジャッジ時間 | 565 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、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:3:1: error: [GHC-87110] Could not load module ‘Data.Set’. It is a member of the hidden package ‘containers-0.6.8’. Use -v to see a list of the files searched for. | 3 | import qualified Data.Set as Set | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ソースコード
import Prelude import Data.Bits (popCount) import qualified Data.Set as Set main :: IO () main = readLn >>= print . solve solve :: Int -> Int solve n = solve' [1] [] 1 Set.empty where -- Breadth First Search -- Searching Nodes -> Next Search Nodes -> Count -> Node Logs solve' :: [Int] -> [Int] -> Int -> Set.Set Int -> Int solve' [] [] _ _ = -1 solve' [] nx c st = solve' nx [] (c + 1) st solve' (b:bs) nx c st | b < 1 || b > n || Set.member b st = solve' bs nx c st | b == n = c | otherwise = let x = popCount b in solve' bs ((b + x):((b - x):nx)) c (Set.insert b st)