結果
問題 |
No.391 CODING WAR
|
ユーザー |
![]() |
提出日時 | 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
ソースコード
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