結果
問題 | No.666 1000000007で割るだけ |
ユーザー |
|
提出日時 | 2020-10-26 18:54:27 |
言語 | Haskell (9.10.1) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 10,136 bytes |
コンパイル時間 | 1,069 ms |
コンパイル使用メモリ | 154,624 KB |
最終ジャッジ日時 | 2024-11-14 23:53:15 |
合計ジャッジ時間 | 1,494 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、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:34:1: error: [GHC-87110] Could not load module ‘GHC.Integer.GMP.Internals’. It is a member of the hidden package ‘integer-gmp-1.1’. Use -v to see a list of the files searched for. | 34 | import qualified GHC.Integer.GMP.Internals as GMP | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ソースコード
LANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGELANGUAGEimportControl.MonadimportControl.Monad.ContimportControl.Monad.StateimportData.BitsimportData.CharimportData.CoerceimportData.IntimportData.WordimportGHC.ExtsimportSystem.IOimportUnsafe.CoerceimportqualifiedData.ByteStringasBSimportqualifiedData.ByteString.BuilderasBSBimportqualifiedData.ByteString.CharasBSCimportqualifiedGHC.Integer.GMP.InternalsasGMPimportqualifiedData.Vector.Fusion.Stream.MonadicasVFSMimportqualifiedData.Vector.GenericasVGimportqualifiedData.Vector.UnboxedasVUmain::IO()main = do[a, b] <- map (read @Int) . words <$> getLineprint $ a * b `mod` 1_000_000_007infixl 8 .<<., .>>., .>>>.infixl 6 .^.(.<<.)::Bitsb=>b->Int->b(.<<.) = unsafeShiftLINLINE(.>>.)::Bitsb=>b->Int->b(.>>.) = unsafeShiftRINLINE(.>>>.)::Int->Int->Int(.>>>.) (I# x#) (I# i#) = I# (uncheckedIShiftRL# x# i#)INLINE(.^.) :: Bits b => b -> b -> b(.^.) = xorINLINEclz::FiniteBitsfb=>fb->Intclz = countLeadingZerosINLINEctz::FiniteBitsfb=>fb->Intctz = countTrailingZerosINLINEencode32x2::Int->Int->Intencode32x2 x y = x .<<. 32 .|. yINLINEdecode32x2::Int->IntIntdecode32x2 xy =let !x = xy .>>>. 32!y = xy .&. 0xffffffffin (x, y)INLINEceilPow2::Int->IntceilPow2 n| n > 1 = (-1) .>>>. (clz (n - 1)) + 1| otherwise = 1INLINEfloorPow2::Int->IntfloorPow2 n| n >= 1 = 1 .<<. (63 - (clz n))| otherwise = 0INLINEfi::Int->Integerfi = fromIntegralINLINEfI::Integer->IntfI = fromIntegerINLINEfid::Int->Doublefid = fromIntegralINLINEfif::Int->Floatfif = fromIntegralINLINEpowModInt::Int->Int->Int->IntpowModInt a n mo = fI $ GMP.powModInteger (fi a) (fi n) (fi mo)recipModInt::Int->Int->IntrecipModInt a mo = fI $ GMP.recipModInteger (fi a) (fi mo)floorSqrt::Int->IntfloorSqrt = floor . sqrt . fromIntegralfloorLog2::Int->IntfloorLog2 x = fromIntegral $ y `unsafeShiftR` 52 - 1023wherey::Word64y = unsafeCoerce (fromIntegral x :: Double)-- forstream::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)INLINEwithBreak::r->ContTrIOb->ContTrIOr->IOrwithBreak = flip runContT pure . callCCINLINE-- inputtype CParser a = StateT BSC8.ByteString Maybe arunCParser::CParsera->BSC8ByteString->MaybeaBSC8ByteStringrunCParser = runStateTINLINEint::CParserIntint = coerce $ BSC8.readInt . BSC8.dropWhile isSpaceINLINEint1::CParserIntint1 = fmap (subtract 1) intINLINEchar::CParserCharchar = coerce BSC8.unconsINLINEbyte::CParserWord8byte = coerce BS.unconsINLINEskipSpaces::CParser()skipSpaces = modify' (BSC8.dropWhile isSpace)INLINEseqInput::Int->IOVUVectorIntseqInput n = VU.unfoldrN n (runCParser int) <$> BSC8.getLineINLINEparseN1::Int->IOVUVectorIntparseN1 n = VU.unfoldrN n (runCParser int) <$> BSC8.getContentsINLINEparseN2::Int->IOVUVectorIntIntparseN2 n = VU.unfoldrN n (runCParser $ (,) <$> int <*> int) <$> BSC8.getContentsINLINEparseN3::Int->IOVUVectorIntIntIntparseN3 n = VU.unfoldrN n (runCParser $ (,,) <$> int <*> int <*> int) <$> BSC8.getContentsINLINEparseN4::Int->IOVUVectorIntIntIntIntparseN4 n = VU.unfoldrN n (runCParser $ (,,,) <$> int <*> int <*> int <*> int) <$> BSC8.getContentsINLINEparseN5::Int->IOVUVectorIntIntIntIntIntparseN5 n = VU.unfoldrN n (runCParser $ (,,,,) <$> int <*> int <*> int <*> int <*> int) <$> BSC8.getContentsINLINEparseANBN::Int->IOVUVectorIntVUVectorIntparseANBN n = VU.unzip . VU.unfoldrN n (runCParser $ (,) <$> int <*> int) <$> BSC8.getContentsINLINEparseANBNCN::Int->IOVUVectorIntVUVectorIntVUVectorIntparseANBNCN n = VU.unzip3 . VU.unfoldrN n (runCParser $ (,,) <$> int <*> int <*> int) <$> BSC8.getContentsINLINEtype Query5 = (Int, Int, Int, Int, Int)query5Parser::CParserQuery5query5Parser = doskipSpacest <- charcase t of'0' -> (,,,,) 0 <$> int <*> int <*> int <*> int_ -> (,,,,) 1 <$> int <*> int <*> pure 0 <*> pure 0parseQ5::Int->IOVUVectorQuery5parseQ5 n = VU.unfoldrN n (runCParser query5Parser) <$> BSC8.getContentsINLINE-- outputclassShowAsBuilderawhereshowAsBuilder::a->BSBBuilderdefault showAsBuilder :: (Show a) => a -> BSB.BuildershowAsBuilder = BSB.string8 . showinstanceShowAsBuilderIntwhereshowAsBuilder = BSB.intDecINLINEinstanceShowAsBuilderInt8whereshowAsBuilder = BSB.int8DecINLINEinstanceShowAsBuilderInt16whereshowAsBuilder = BSB.int16DecINLINEinstanceShowAsBuilderInt32whereshowAsBuilder = BSB.int32DecINLINEinstanceShowAsBuilderInt64whereshowAsBuilder = BSB.int64DecINLINEinstanceShowAsBuilderWord8whereshowAsBuilder = BSB.word8DecINLINEinstanceShowAsBuilderWord16whereshowAsBuilder = BSB.word16DecINLINEinstanceShowAsBuilderWord32whereshowAsBuilder = BSB.word32DecINLINEinstanceShowAsBuilderWord64whereshowAsBuilder = BSB.word64DecINLINEinstanceShowAsBuilderIntegerwhereshowAsBuilder = BSB.integerDecINLINEinstanceShowAsBuilderFloatwhereshowAsBuilder = BSB.floatDecINLINEinstanceShowAsBuilderDoublewhereshowAsBuilder = BSB.doubleDecINLINEinstanceShowAsBuilderaVGVectorva=>ShowAsBuildervawhereshowAsBuilder = v2BSpcSepputBuilder::BSBBuilder->IO()putBuilder = BSB.hPutBuilder stdoutINLINEprintVecInLines::VGVectorvaShowAsBuildera=>va->IO()printVecInLines = putBuilder . v2BLinesINLINEprintVecInSpcSepLn::VGVectorvaShowAsBuildera=>va->IO()printVecInSpcSepLn = putBuilder . v2BSpcSepLnINLINEv2BSpcSepLn::VGVectorvaShowAsBuildera=>va->BSBBuilderv2BSpcSepLn = v2BSpcSepLnWith showAsBuilderINLINEv2BSpcSep::VGVectorvaShowAsBuildera=>va->BSBBuilderv2BSpcSep = v2BSpcSepWith showAsBuilderINLINEv2BConcat::VGVectorvaShowAsBuildera=>va->BSBBuilderv2BConcat = v2BConcatWith showAsBuilderINLINEv2BLines::VGVectorvaShowAsBuildera=>va->BSBBuilderv2BLines = v2BLinesWith showAsBuilderINLINEv2BSpcSepLnWith::VGVectorva=>a->BSBBuilder->va->BSBBuilderv2BSpcSepLnWith = v2BSpcSepPostfWith "\n"INLINEv2BSpcSepWith::VGVectorva=>a->BSBBuilder->va->BSBBuilderv2BSpcSepWith = v2BSpcSepPostfWith ""INLINEv2BConcatWith::VGVectorva=>a->BSBBuilder->va->BSBBuilderv2BConcatWith showFct = VG.foldr ((<>) . showFct) memptyINLINEv2BLinesWith::VGVectorva=>a->BSBBuilder->va->BSBBuilderv2BLinesWith showFct = VG.foldr (\a -> (showFct a <>) . (BSB.char7 '\n' <>)) memptyINLINEv2BSpcSepPostf::VGVectorvaShowAsBuildera=> BS.ByteString -- ^ postfix-> v a -> BSB.Builderv2BSpcSepPostf = (`v2BSpcSepPostfWith` showAsBuilder)INLINEv2BSpcSepPostfWith::VGVectorva=> BS.ByteString -- ^ postfix-> (a -> BSB.Builder) -- ^ show function-> v a -> BSB.Builderv2BSpcSepPostfWith = vecToBuilder "" " "INLINEvecToBuilder::VGVectorva=> BS.ByteString -- ^ prefix-> BS.ByteString -- ^ separator-> BS.ByteString -- ^ postfix-> (a -> BSB.Builder) -- ^ show function-> v a -> BSB.BuildervecToBuilder !prefix !separator !postfix= vecToBuilder_ (BSB.byteString prefix)(BSB.byteString separator)(BSB.byteString postfix)INLINEvecToBuilder_::VGVectorva=> BSB.Builder -- ^ prefix-> BSB.Builder -- ^ separator-> BSB.Builder -- ^ postfix-> (a -> BSB.Builder) -- ^ show function-> v a -> BSB.BuildervecToBuilder_ !prefix !separator !postfix showFct vec= prefix <> VG.foldr(\a rest !prefx -> prefx <> (showFct a <> rest separator))(const postfix) vec memptyINLINE