結果

問題 No.147 試験監督(2)
ユーザー cielciel
提出日時 2015-02-09 16:37:18
言語 Ruby
(3.3.0)
結果
TLE  
実行時間 -
コード長 440 bytes
コンパイル時間 214 ms
コンパイル使用メモリ 11,372 KB
実行使用メモリ 27,876 KB
最終ジャッジ日時 2023-09-05 21:00:48
合計ジャッジ時間 7,095 ms
ジャッジサーバーID
(参考情報)
judge15 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

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

ソースコード

diff #

#!/usr/bin/ruby
require 'matrix'
MOD=1000000007
def pow_binary(unit,x,y,&blk)
	blk=lambda{|e|e} if !block_given?
	z = unit
	while y!=0
		z=blk.(z*x) if y&1!=0
		x=blk.(x*x)
		y>>=1
	end
	z
end

r=1
gets.to_i.times{
	c,d=gets.split.map(&:to_i)
	d%=MOD-1
	fib=pow_binary(Matrix[[1,0],[0,1]],Matrix[[1,1],[1,0]],c-1){|x|Matrix[*x.to_a.map{|e|e.map{|f|f%MOD}}]}
	r=r*pow_binary(1,(fib[0,0]+fib[0,1]+fib[1,0]+fib[1,1])%MOD,d){|x|x%MOD}%MOD
}
p r
0