結果
問題 | No.117 組み合わせの数 |
ユーザー | roaris |
提出日時 | 2019-12-04 12:56:07 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 615 bytes |
コンパイル時間 | 146 ms |
コンパイル使用メモリ | 82,348 KB |
実行使用メモリ | 143,104 KB |
最終ジャッジ日時 | 2024-11-30 06:44:05 |
合計ジャッジ時間 | 958 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ソースコード
def inv(x): return pow(x, MOD-2, MOD) def P(n, k): if k>n: return 0 return fact[n]*inv(fact[n-k]) def C(n, k): if k>n: return 0 return fact[n]*inv(fact[k])*inv(fact[n-k]) def H(n, k): return C(n+k-1, k) MOD = 10**9+7 fact = [1] for i in range(1, 10**6+100): fact.append(fact[-1]*i%MOD) T = int(input()) for _ in range(T): Si = input() mark = Si.find(',') N = int(Si[2:mark]) K = int(Si[mark+1:-1]) if Si[0]=='P': print(P(N, K)%MOD) elif Si[0]=='C': print(C(N, K)%MOD) elif Si[0]=='H': print(H(N, K)%MOD)