結果
問題 | No.117 組み合わせの数 |
ユーザー | yuppe19 😺 |
提出日時 | 2020-09-01 12:44:53 |
言語 | Python3 (3.12.2 + numpy 1.26.4 + scipy 1.12.0) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 888 bytes |
コンパイル時間 | 469 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 167,680 KB |
最終ジャッジ日時 | 2024-11-18 12:51:54 |
合計ジャッジ時間 | 11,838 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ソースコード
#!/usr/bin/env python3 # † mod = 10**9 + 7 ### if __name__ == '__main__': N = 2 * 10**6 + 6 nume = [None] * N deno = [None] * N nume[0] = 1 deno[0] = pow(nume[0], -1, mod) for i in range(N-1): nume[i+1] = nume[i] * (i+1) % mod deno[i+1] = pow(nume[i+1], -1, mod) def C(n, k): if n < k: return 0 return nume[n] * deno[k] * deno[n-k] % mod def P(n, k): if n < k: return 0 return nume[n] * deno[n-k] % mod def H(n, k): if (n, k) == (0, 0): return 1 return C(n+k-1, k) T = int(input()) for _ in range(T): line = input() a, (N, K) = line[0], map(int, line[2:-1].split(',')) if a == 'C': res = C(N, K) elif a == 'P': res = P(N, K) else: res = H(N, K) print(res)