結果
| 問題 |
No.147 試験監督(2)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-02-17 01:15:29 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 1,333 ms / 2,000 ms |
| コード長 | 520 bytes |
| コンパイル時間 | 180 ms |
| コンパイル使用メモリ | 7,424 KB |
| 実行使用メモリ | 12,672 KB |
| 最終ジャッジ日時 | 2024-12-26 14:49:59 |
| 合計ジャッジ時間 | 6,492 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 4 |
コンパイルメッセージ
Syntax OK
ソースコード
# http://yukicoder.me/submissions/11671 参考
def pow(a,b,mod)
(a.abs<1)?0:(b<1)?1:(b%2<1)?(pow(a*a%mod,b/2,mod)%mod):a*pow(a,b-1,mod)%mod
end
mod=1000000007
MaxBit=64
Md=[d=1]
Me=[e=1]
Mf=[f=0]
(MaxBit-1).times{
Md<< t=(d*d+e*e)%mod
Me<< u=(d*e+e*f)%mod
Mf<< v=(e*e+f*f)%mod
d,e,f=t,u,v
}
def fib(n,mod)
MaxBit.times.inject([0,1]){|(a,b),i|
n[i]>0?[(a*Md[i]+b*Me[i])%mod,(a*Me[i]+b*Mf[i])%mod]:[a,b]
}[0]
end
gets
p $<.inject(1){|s,r|
c,d=r.split.map(&:to_i)
s*pow(fib(c+2,mod),d%(mod-1),mod)%mod
}