提出 #11693643
ソースコード 拡げる
import Control.Monad
import qualified Data.Array.IO as IO
import Data.Bits
import qualified Data.ByteString.Char8 as BS
import Data.Char
import Data.Foldable
import Data.Maybe
import qualified Data.Sequence as Seq
import qualified Data.Vector.Unboxed as V
import qualified Data.Vector.Unboxed.Mutable as VM
readInt = fst . fromJust . BS.readInt
getInt = readInt <$> BS.getLine
primeFactorization :: Int -> [(Int, Int)]
primeFactorization x = pfact x 2 0 []
where
sr = floor $ sqrt $ fromIntegral x
pfact n i r fs | i > sr = if n > sr then (n,1):fs else fs
| otherwise =
if n `mod` i == 0
then pfact (n `div` i) i (r+1) fs
else pfact n (i+1) 0 (if r > 0 then (i,r):fs else fs)
main = do
n <- getInt
let p = 10^9 + 7 :: Int
sr = floor $ sqrt $ fromIntegral n
v <- VM.new (n+1)
VM.set v (0::Int)
forM_ [1..n] $ \x ->
forM_ (primeFactorization x) $ \(i, r) -> do
t <- VM.read v i
VM.write v i (t+r)
VM.write v 0 (1::Int)
forM_ [1..n] $ \i -> do
res <- VM.read v 0
t <- VM.read v i
VM.write v 0 (res * (t + 1) `mod` p)
ans <- VM.read v 0
print ans
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - Factors of Factorial |
| ユーザ | unnohideyuki |
| 言語 | Haskell (GHC 7.10.3) |
| 得点 | 300 |
| コード長 | 1362 Byte |
| 結果 | AC |
| 実行時間 | 2 ms |
| メモリ | 892 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 300 / 300 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_certain_01.txt, subtask_1_certain_02.txt, subtask_1_certain_03.txt, subtask_1_certain_04.txt, subtask_1_rand_01.txt, subtask_1_rand_02.txt, subtask_1_rand_03.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| sample_01.txt | AC | 1 ms | 380 KiB |
| sample_02.txt | AC | 1 ms | 380 KiB |
| sample_03.txt | AC | 2 ms | 892 KiB |
| subtask_1_certain_01.txt | AC | 1 ms | 380 KiB |
| subtask_1_certain_02.txt | AC | 1 ms | 380 KiB |
| subtask_1_certain_03.txt | AC | 2 ms | 892 KiB |
| subtask_1_certain_04.txt | AC | 2 ms | 892 KiB |
| subtask_1_rand_01.txt | AC | 2 ms | 764 KiB |
| subtask_1_rand_02.txt | AC | 2 ms | 892 KiB |
| subtask_1_rand_03.txt | AC | 2 ms | 764 KiB |