結果
問題 | No.533 Mysterious Stairs |
ユーザー |
|
提出日時 | 2020-11-05 18:31:37 |
言語 | Haskell (9.10.1) |
結果 |
AC
|
実行時間 | 62 ms / 5,000 ms |
コード長 | 1,671 bytes |
コンパイル時間 | 4,007 ms |
コンパイル使用メモリ | 173,184 KB |
実行使用メモリ | 27,264 KB |
最終ジャッジ日時 | 2024-07-22 11:15:54 |
合計ジャッジ時間 | 5,384 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 28 |
コンパイルメッセージ
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
ソースコード
LANGUAGEimportqualifiedData.Vector.Fusion.Stream.MonadicasVFSMimportqualifiedData.Vector.Unboxed.MutableasVUMmodulo::Intmodulo = 1000000007INLINEmain::IO()main = don <- readLn :: IO Intdp <- VUM.unsafeNew 3000003 :: IO (VUM.IOVector Int)VUM.unsafeWrite dp 0 1VUM.unsafeWrite dp 1 0VUM.unsafeWrite dp 2 0VUM.unsafeWrite dp 3 1VUM.unsafeWrite dp 4 0VUM.unsafeWrite dp 5 0VUM.unsafeWrite dp 6 0VUM.unsafeWrite dp 7 1VUM.unsafeWrite dp 8 0rep n $ \i -> doitem1 <- VUM.unsafeRead dp ((i - 1) * 3 + 1)item2 <- VUM.unsafeRead dp ((i - 2) * 3)item3 <- VUM.unsafeRead dp ((i - 3) * 3)item4 <- VUM.unsafeRead dp ((i - 1) * 3 + 2)item5 <- VUM.unsafeRead dp ((i - 2) * 3 + 2)item6 <- VUM.unsafeRead dp ((i - 3) * 3 + 1)VUM.unsafeWrite dp (i * 3) (item1 + item4)VUM.unsafeWrite dp ((i * 3) + 1) (item2 + item5)VUM.unsafeWrite dp ((i * 3) + 2) (item3 + item6)VUM.unsafeModify dp (`mod` modulo) (i * 3)VUM.unsafeModify dp (`mod` modulo) (i * 3 + 1)VUM.unsafeModify dp (`mod` modulo) (i * 3 + 2)item1 <- VUM.unsafeRead dp (n * 3)item2 <- VUM.unsafeRead dp (n * 3 + 1)item3 <- VUM.unsafeRead dp (n * 3 + 2)print . flip mod modulo $ item1 + item2 + item3stream::Monadm=>Int->Int->VFSMStreammIntstream !l !r = VFSM.Stream step lwherestep x| x <= r = return $ VFSM.Yield x (x + 1)| otherwise = return $ VFSM.DoneINLINEINLINErep::Monadm=>Int->Int->m()->m()rep n = flip VFSM.mapM_ (stream 3 n)INLINE