結果
| 問題 |
No.510 二次漸化式
|
| コンテスト | |
| ユーザー |
aimy
|
| 提出日時 | 2017-04-29 00:34:45 |
| 言語 | Haskell (9.10.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 903 bytes |
| コンパイル時間 | 6,738 ms |
| コンパイル使用メモリ | 172,800 KB |
| 実行使用メモリ | 21,408 KB |
| 最終ジャッジ日時 | 2024-09-13 18:54:59 |
| 合計ジャッジ時間 | 10,879 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | TLE * 1 -- * 33 |
コンパイルメッセージ
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
ソースコード
main = do n <- readLn :: IO Integer q <- readLn :: IO Integer qs <- map words . lines <$> getContents mapM_ print (process qs) process :: [[String]] -> [Integer] process = reverse . fst . foldl exec ([],(x,y)) a :: [Integer] -> [Integer] -> Int -> Integer a x y 0 = 1 a x y i = (x !! (i-1)) * (b x y (i-1))^2 + a x y (i-1) b :: [Integer] -> [Integer] -> Int -> Integer b x y 0 = 1 b x y i = (y !! (i-1)) * b x y (i-1) + 1 x :: [Integer] x = repeat 0 y :: [Integer] y = repeat 0 exec :: ([Integer],([Integer],[Integer])) -> [String] -> ([Integer],([Integer],[Integer])) exec (acc,(xn,yn)) q = case q of ["x",i,v] -> (acc, (replace (read i) (read v) xn, yn)) ["y",i,v] -> (acc, (xn, replace (read i) (read v) yn)) ["a",i] -> (a xn yn (read i) `mod` (10^9+7) : acc, (xn,yn)) replace :: Int -> Integer -> [Integer] -> [Integer] replace i v xs = let (x1,(_:x2)) = splitAt i xs in x1 ++ [v] ++ x2
aimy