提出 #4704278


ソースコード 拡げる

import Data.Int
import Data.List

modulo :: Int64
modulo = 10^9 + 7
newtype N = N Int64 deriving Eq
instance Show N where
  show (N x) = show x
instance Num N where
  N x + N y = N ((x + y) `rem` modulo)
  N x - N y = N ((x - y) `mod` modulo)
  N x * N y = N ((x * y) `rem` modulo)
  fromInteger n = N (fromInteger (n `mod` fromIntegral modulo))
  abs = undefined; signum = undefined

solution :: [(N,N,N)]
solution = (1,0,0):(4,0,1):(16,1,4):(61,3,15)
  : zipWith4 (\(a1,b1,c1) (a2,b2,c2) (a3,b3,c3) (a4,b4,c4) -> (4*a1-3*a3+b3+c3-3*a4,a2-c2,a1-b1)) (drop 3 solution) (drop 2 solution) (tail solution) solution

main = do
  n <- readLn :: IO Int
  print $ case solution !! n of
            (N x,_,_) -> x

提出情報

提出日時
問題 D - We Like AGC
ユーザ mod_poppo
言語 Haskell (GHC 7.10.3)
得点 400
コード長 729 Byte
結果 AC
実行時間 2 ms
メモリ 508 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 3
AC × 13
セット名 テストケース
Sample a01, a02, a03
All a01, a02, a03, b04, b05, b06, b07, b08, b09, b10, b11, b12, b13
ケース名 結果 実行時間 メモリ
a01 AC 2 ms 508 KiB
a02 AC 1 ms 508 KiB
a03 AC 2 ms 508 KiB
b04 AC 2 ms 508 KiB
b05 AC 2 ms 508 KiB
b06 AC 2 ms 508 KiB
b07 AC 2 ms 508 KiB
b08 AC 2 ms 508 KiB
b09 AC 2 ms 508 KiB
b10 AC 2 ms 508 KiB
b11 AC 2 ms 508 KiB
b12 AC 2 ms 508 KiB
b13 AC 2 ms 508 KiB