結果
問題 | No.117 組み合わせの数 |
ユーザー | roaris |
提出日時 | 2019-12-04 12:57:17 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 617 bytes |
コンパイル時間 | 403 ms |
コンパイル使用メモリ | 82,540 KB |
実行使用メモリ | 232,480 KB |
最終ジャッジ日時 | 2024-05-07 13:39:56 |
合計ジャッジ時間 | 1,620 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ソースコード
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, 2*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)