結果
| 問題 |
No.117 組み合わせの数
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-10-02 10:33:32 |
| 言語 | PyPy2 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 516 ms / 5,000 ms |
| コード長 | 693 bytes |
| コンパイル時間 | 2,208 ms |
| コンパイル使用メモリ | 76,460 KB |
| 実行使用メモリ | 126,692 KB |
| 最終ジャッジ日時 | 2024-11-21 12:59:08 |
| 合計ジャッジ時間 | 3,846 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 1 |
ソースコード
#yuki_117
mod=10**9+7
n=2*10**6
fact=[0 for i in xrange(n+1)]
inv=[0 for i in xrange(n+1)]
factr=[0 for i in xrange(n+1)]
inv[1]=fact[0]=factr[0]=1
for i in xrange(2,n+1):
inv[i]=inv[mod%i]*(mod-mod/i)%mod
for i in xrange(1,n+1):
fact[i]=fact[i-1]*i%mod
factr[i]=factr[i-1]*inv[i]%mod
def comb(n,k):
if k<0 or k>n: return 0
return factr[k]*fact[n]%mod*factr[n-k]%mod
def perm(n,k):
if k<0 or k>n: return 0
return fact[n]*factr[n-k]%mod
def hcomb(n,k):
if n==0 and k==0: return 1
return comb(n+k-1,k)
t=int(raw_input())
for i in xrange(t):
s=raw_input()
c=s[0]
n,k=map(int,s[2:-1].split(','))
if c=='C': print comb(n,k)
if c=='P': print perm(n,k)
if c=='H': print hcomb(n,k)