結果
| 問題 |
No.7 プライムナンバーゲーム
|
| コンテスト | |
| ユーザー |
3405691582
|
| 提出日時 | 2017-03-21 12:04:47 |
| 言語 | Haskell (9.10.1) |
| 結果 |
CE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 937 bytes |
| コンパイル時間 | 343 ms |
| コンパイル使用メモリ | 149,760 KB |
| 最終ジャッジ日時 | 2024-11-15 04:44:49 |
| 合計ジャッジ時間 | 715 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / 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:1:1: error: [GHC-87110]
Could not load module ‘Data.Map’.
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 qualified Data.Map as M
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ソースコード
import qualified Data.Map as M
type Table = M.Map Int Bool
main = do
n <- read <$> getLine
putStrLn $ if snd $ battle (primesLeqN n) M.empty n then "Win" else "Lose"
primesLeqN :: Int -> [Int]
primesLeqN n =
sieve [2..n] where
sieve [] = []
sieve (n:ns) = n:sieve [m|m<-ns,mod m n/=0]
{-battle' :: Int -> Bool
battle' n
| n <= 1 = True
| otherwise =
not $ and $ battle' <$> ((n-) <$> primesLeqN n)-}
battle :: [Int] -> Table -> Int -> (Table,Bool)
battle primes tbl n
| n <= 1 = (tbl,True)
| otherwise =
case M.lookup n tbl of
Just b -> (tbl,b)
Nothing -> (M.insert n (not rslt) tbl',not rslt)
where
(tbl',rslt) = battleAux tbl n $ takeWhile (n>) primes
battleAux tbl n [] = (tbl,True)
battleAux tbl n (p:ps) = (tbl'',b && rslt')
where
(tbl''',b) = battle primes tbl (n-p)
(tbl'',rslt') = battleAux tbl''' n ps
3405691582