結果
問題 | No.797 Noelちゃんとピラミッド |
ユーザー |
|
提出日時 | 2019-03-15 21:29:21 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 257 ms / 2,000 ms |
コード長 | 1,009 bytes |
コンパイル時間 | 118 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 24,576 KB |
最終ジャッジ日時 | 2024-07-01 20:24:58 |
合計ジャッジ時間 | 12,641 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 60 |
コンパイルメッセージ
Syntax OK
ソースコード
MOD = 10**9+7 def create_fact_mod(num_max) $fmod = Array.new(num_max + 1) $fmod[0] = 1 $fmod[1] = 1 (2..num_max).each do |i| $fmod[i] = ($fmod[i - 1] * i) % MOD end end def create_seq_inv_mod(num_max) $simod = Array.new(num_max + 1) $simod[0] = 1 $simod[1] = 1 (2..num_max).each do |i| $simod[i] = (MOD - MOD / i) * $simod[MOD % i] % MOD end end def create_fact_inv_mod(num_max) $fimod = Array.new(num_max + 1) $fimod[0] = 1 $fimod[1] = 1 (2..num_max).each do |i| $fimod[i] = ($fimod[i - 1] * $simod[i]) % MOD end end def create_mod_tables(n) create_fact_mod(n) create_seq_inv_mod(n) create_fact_inv_mod(n) end def comb_mod(n, k) return $fmod[n] * $fimod[n - k] * $fimod[k] % MOD end def perm_mod(n, k) return $fmod[n] * $fimod[n - k] % MOD end N = gets.to_i as = gets.split.map(&:to_i) create_mod_tables(N) ans = 0 N.times do |i| ans += as[i] * comb_mod(N-1, i) ans %= MOD end puts ans