結果

問題 No.147 試験監督(2)
ユーザー らっしー(raccy)らっしー(raccy)
提出日時 2017-03-09 06:01:17
言語 Ruby
(3.3.0)
結果
TLE  
実行時間 -
コード長 454 bytes
コンパイル時間 294 ms
コンパイル使用メモリ 11,556 KB
実行使用メモリ 38,336 KB
最終ジャッジ日時 2023-09-06 02:01:21
合計ジャッジ時間 6,995 ms
ジャッジサーバーID
(参考情報)
judge12 / judge14
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 TLE -
testcase_01 -- -
testcase_02 -- -
testcase_03 -- -
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

# frozen_string_literal: true
n = gets.to_i
table = Array.new(n) { gets.split.map(&:to_i) }.to_h

MOD1097 = 10**9 + 7

def exp(b, e)
  return 1 if e.zero?
  return b if e == 1
  ((exp(b, e / 2)**2 % MOD1097) * (e.even? ? 1 : b)) % MOD1097
end

result = 1
pre0 = 1
pre1 = 1
(1..table.keys.max).each do |i|
  curr = (pre0 + pre1) % MOD1097
  if (n = table[i])
    result = (result * exp(curr, n)) % MOD1097
  end
  pre0, pre1 = pre1, curr
end

puts result
0