結果
| 問題 | No.389 ロジックパズルの組み合わせ |
| コンテスト | |
| ユーザー |
manini
|
| 提出日時 | 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))
manini