結果

問題 No.314 ケンケンパ
ユーザー はむ吉🐹
提出日時 2016-04-24 20:09:07
言語 Haskell
(9.10.1)
結果
AC  
実行時間 24 ms / 1,000 ms
コード長 513 bytes
コンパイル時間 4,144 ms
コンパイル使用メモリ 178,560 KB
実行使用メモリ 11,776 KB
最終ジャッジ日時 2024-10-04 15:39:11
合計ジャッジ時間 5,032 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 17
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.8.2/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )
[2 of 2] Linking a.out

ソースコード

diff #

import Control.Monad
import Data.Array.ST
import Data.Array.Unboxed

m :: Int
m = 10 ^ 9 + 7

kenTable :: Int -> UArray Int Int
kenTable n = runSTUArray $ do
    t <- newArray_ (1, max 3 n)
    writeArray t 1 1
    writeArray t 2 2
    writeArray t 3 2
    forM_ [4 .. n] $ \i -> do
        term1 <- readArray t $ i - 2
        term2 <- readArray t $ i - 3
        writeArray t i $ flip mod m $ term1 + term2
    return t

ken :: Int -> Int
ken n = (! n) $ kenTable n

main :: IO ()
main = print . ken =<< readLn
0