結果
| 問題 |
No.117 組み合わせの数
|
| ユーザー |
|
| 提出日時 | 2015-01-04 23:56:50 |
| 言語 | Ruby (3.4.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 542 bytes |
| コンパイル時間 | 125 ms |
| コンパイル使用メモリ | 7,296 KB |
| 実行使用メモリ | 36,896 KB |
| 最終ジャッジ日時 | 2024-06-13 02:27:33 |
| 合計ジャッジ時間 | 12,552 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | TLE * 1 |
コンパイルメッセージ
Main.rb:28: warning: assigned but unused variable - r Syntax OK
ソースコード
def pow(a,b,mod)
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
r
end
def nPr(n,r,mod)
return 0 if n<r
(1..r).inject(1){|s,i|(s*((n-i+1)%mod))%mod}
end
def nCr(n,r,mod)
return 0 if n<r
ret=(1..r).inject(1){|s,i|(s*((n-i+1)%mod))%mod}
(1..r).inject(ret){|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)
}