結果
問題 | No.117 組み合わせの数 |
ユーザー | Tawara |
提出日時 | 2015-10-13 17:25:02 |
言語 | PyPy2 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 572 bytes |
コンパイル時間 | 131 ms |
コンパイル使用メモリ | 76,672 KB |
実行使用メモリ | 111,232 KB |
最終ジャッジ日時 | 2024-07-21 07:32:14 |
合計ジャッジ時間 | 4,044 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ソースコード
import re p = re.compile(r'\(|\)|,') mod = 10**9+7 N_MAX = 10**6 fact = [0]*(2*N_MAX+1) fact_inv = [0]*(2*N_MAX+1) fact[0] = fact_inv[0] = 1 for i in xrange(1,2*N_MAX+1): fact[i] = (i*fact[i-1]) % mod fact_inv[i] = pow(fact[i],mod-2,mod) % mod T = input() for i in xrange(T): q = p.split(raw_input()) N = int(q[1]) K = int(q[2]) if q[0] == "C": print 0 if N < K else (fact[N]*fact_inv[K]*fact_inv[N-K]) % mod elif q[0] == "P": print 0 if N < K else (fact[N]*fact_inv[N-K]) % mod else: print 1 if N == K == 0 else (fact[N-1+K]*fact_inv[N-1]*fact_inv[K]) % mod