結果
問題 | No.41 貯金箱の溜息(EASY) |
ユーザー | anta |
提出日時 | 2014-10-16 23:48:30 |
言語 | Haskell (9.8.2) |
結果 |
AC
|
実行時間 | 215 ms / 5,000 ms |
コード長 | 981 bytes |
コンパイル時間 | 3,527 ms |
コンパイル使用メモリ | 175,744 KB |
実行使用メモリ | 74,536 KB |
最終ジャッジ日時 | 2024-06-09 16:10:54 |
合計ジャッジ時間 | 4,524 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 143 ms
64,048 KB |
testcase_01 | AC | 215 ms
74,536 KB |
コンパイルメッセージ
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
ソースコード
-- No.42が普通にわからないのでお茶をにごす -- TLEするかな? import Control.Applicative import Control.Monad import Data.Int (Int64) import Data.Array main = do let x = 111111 t <- readLn let dpsum = solve x (fromIntegral$ (10^10 :: Int64) `div` fromIntegral x) replicateM_ t$ do m <- readLn :: IO Int64 let ans = dpsum ! fromIntegral (m `div` fromIntegral x) print ans solve :: Int -> Int -> Array Int Int solve x maxm = dpsum where dpsum = listArray (0,maxm) [ modPlus (if i == 0 then 0 else dpsum ! (i-1)) (dp ! (9,i)) | i <- [0..maxm] ] dp :: Array (Int,Int) Int dp = listArray ((0,0),(9,maxm)) [ f i j | i <- [0..9], j <- [0..maxm] ] f 0 0 = 1 f 0 _ = 0 f i j = modPlus (dp ! (i-1, j)) (if j >= i then dp ! (i, j-i) else 0) modPlus x y = let z = x + y in if z >= _MOD then z - _MOD else z _MOD = 10^9 + 9