結果
問題 |
No.389 ロジックパズルの組み合わせ
|
ユーザー |
![]() |
提出日時 | 2021-01-25 22:16:12 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 125 ms / 2,000 ms |
コード長 | 890 bytes |
コンパイル時間 | 505 ms |
コンパイル使用メモリ | 82,556 KB |
実行使用メモリ | 126,144 KB |
最終ジャッジ日時 | 2024-06-22 18:50:14 |
合計ジャッジ時間 | 8,247 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 99 |
ソースコード
# coding:UTF-8 import sys MOD = 10 ** 9 + 7 INF = float('inf') def extGcd(a, b): if b == 0: return [a, 1, 0] else: g, x, y = extGcd(b, a%b) return [g, int(y), int(x - (a // b) * y)] def inv(a): r = extGcd(a, MOD) return r[1] % MOD def comb(n, k): if n < k: return 0 elif n < 0 or k < 0: return 0 a = 1 for i in range(k): a = a * (n - i) % MOD b = 1 for i in range(1, k+1): b = b * i % MOD binv = inv(b) return (a * binv) % MOD M = int(input()) # 数字 H = list(map(int, input().split())) # スペース区切り連続数字 K = len(H) if H[0] == 0: print("1") exit() t = 0 for i in range(K): if i == K - 1: t += H[i] else: t += H[i] + 1 zan = M - t res = comb(zan+K, K) if res == 0: print("NA") else: print("{}".format(res))