結果

問題 No.391 CODING WAR
ユーザー Tawara
提出日時 2015-12-29 23:05:45
言語 Ruby
(3.4.1)
結果
AC  
実行時間 772 ms / 2,000 ms
コード長 397 bytes
コンパイル時間 428 ms
コンパイル使用メモリ 7,296 KB
実行使用メモリ 14,720 KB
最終ジャッジ日時 2024-12-26 16:36:57
合計ジャッジ時間 8,555 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 16
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

P = 10**9+7
def pow(b,e)
	ret = 1
	while e > 0
		if (e&1) == 1 then
			ret = ret * b % P
		end
		b = b * b % P
		e>>=1
	end
	return ret
end
N,M = gets.split().map{|s| s.to_i}
f = [0]*(M+1)
fi = [0]*(M+1)
f[0] = 1
(1..M).each{|i| f[i] = i*f[i-1]%P}
fi[M] = pow(f[M],P-2)
(1..M).reverse_each{|i| fi[i-1] = i*fi[i]%P}
p (0..M-1).map{|k| f[M]*fi[k]*fi[M-k]*pow(M-k,N)*((-1)**(k%2)) % P}.inject(:+) % P
0