結果
| 問題 |
No.117 組み合わせの数
|
| ユーザー |
|
| 提出日時 | 2015-01-05 00:04:48 |
| 言語 | Ruby (3.4.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 616 bytes |
| コンパイル時間 | 257 ms |
| コンパイル使用メモリ | 7,680 KB |
| 実行使用メモリ | 85,616 KB |
| 最終ジャッジ日時 | 2024-06-13 02:30:45 |
| 合計ジャッジ時間 | 12,892 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | TLE * 1 |
コンパイルメッセージ
Main.rb:31: warning: assigned but unused variable - r Syntax OK
ソースコード
Pow={}
def pow(a,b,mod)
return Pow[[a,b]] if Pow[[a,b]]
r=1
while b>0
r*=a if b&1>0
r%=mod if r>=mod
a*=a
a%=mod if a>=mod
b>>=1
end
Pow[[a,b]]=r
end
P={}
def nPr(n,r,mod)
return 0 if n<r
P[[n,r]]||=(1..r).inject(1){|s,i|(s*((n-i+1)%mod))%mod}
end
C={}
def nCr(n,r,mod)
return 0 if n<r
C[[n,r]]||=(1..r).inject((1..r).inject(1){|s,i|(s*((n-i+1)%mod))%mod}){|s,i|(s*pow(i,mod-2,mod))%mod}
end
def nHr(n,r,mod)
nCr(n+r-1,r,mod)
end
r=[*0..1000000]
m=Hash[?C,:nCr,?P,:nPr,?H,:nHr]
gets.to_i.times{
a,b,c=gets.chomp.split(/\(|,|\)/)
p send(m[a],b.to_i,c.to_i,1000000007)
}