結果
問題 | No.37 遊園地のアトラクション |
ユーザー |
|
提出日時 | 2020-10-21 15:29:57 |
言語 | Haskell (9.10.1) |
結果 |
AC
|
実行時間 | 5 ms / 5,000 ms |
コード長 | 2,276 bytes |
コンパイル時間 | 14,952 ms |
コンパイル使用メモリ | 249,584 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-10 13:45:52 |
合計ジャッジ時間 | 14,886 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 27 |
コンパイルメッセージ
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
ソースコード
LANGUAGEimportControl.MonadimportControl.Monad.FiximportControl.Monad.StateimportData.CharimportData.CoerceimportData.IORefimportqualifiedData.ByteString.CharasBSCimportqualifiedData.Vector.Fusion.Stream.MonadicasVFSMimportqualifiedData.Vector.UnboxedasVUimportqualifiedData.Vector.Unboxed.MutableasVUMmain::IO()main = dot <- readLn :: IO Intm <- readLn :: IO Intcs <- seqInput mvs <- seqInput mdp <- VUM.replicate 10010 (0 :: Int)rep m $ \i -> rehf (vs VU.! i) $ \j -> rev t (cs VU.! i) $ \k -> doitem <- VUM.unsafeRead dp (k - cs VU.! i)VUM.unsafeModify dp (max (item + j)) kprint =<< VUM.unsafeRead dp tstream::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 0 n)INLINEstreamHalf::Monadm=>Int->Int->VFSMStreammIntstreamHalf !l !r = VFSM.Stream step rwherestep x| x > l = return $ VFSM.Yield x (x `div` 2)| otherwise = return $ VFSM.DoneINLINEINLINErehf::Monadm=>Int->Int->m()->m()rehf n = flip VFSM.mapM_ (streamHalf 0 n)INLINEstreamR::Monadm=>Int->Int->VFSMStreammIntstreamR !l !r = VFSM.Stream step rwherestep x| x >= l = return $ VFSM.Yield x (x - 1)| otherwise = return $ VFSM.DoneINLINEINLINErev::Monadm=>Int->Int->Int->m()->m()rev r l = flip VFSM.mapM_ (streamR l r)INLINEtype CParser a = StateT BSC8.ByteString Maybe arunCParser::CParsera->BSC8ByteString->MaybeaBSC8ByteStringrunCParser = runStateTINLINEint::CParserIntint = coerce $ BSC8.readInt . BSC8.dropWhile isSpaceINLINEseqInput::Int->IOVUVectorIntseqInput n = VU.unfoldrN n (runCParser int) <$> BSC8.getLineINLINE