結果
| 問題 | 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))
            
            
            
        