結果
問題 | No.117 組み合わせの数 |
ユーザー |
|
提出日時 | 2024-06-15 21:23:28 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 2,028 ms / 5,000 ms |
コード長 | 942 bytes |
コンパイル時間 | 571 ms |
コンパイル使用メモリ | 82,560 KB |
実行使用メモリ | 243,200 KB |
最終ジャッジ日時 | 2024-06-15 21:23:34 |
合計ジャッジ時間 | 5,628 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 1 |
ソースコード
MOD = 10 ** 9 + 7def main():fact = [1]for i in range(1, 2 * 10 ** 6 + 1):fact.append(fact[-1] * i % MOD)inv = []for f in fact:inv.append(pow(f, MOD - 2, MOD))t = int(input())for _ in range(t):s = input()n, k = list(map(int, s[2:-1].split(",")))if s[0] == "C":if k > n:ans = 0else:ans = fact[n] * inv[k] % MOD * inv[n - k] % MODelif s[0] == "P":if k > n:ans = 0else:ans = fact[n] * inv[n - k] % MODelif s[0] == "H":if n == 0:if k == 0:# ????ans = 1else:ans = 0else:# C(n + k - 1, k)ans = fact[n + k - 1] * inv[k] % MOD * inv[n - 1] % MODprint(ans)main()