結果
問題 |
No.389 ロジックパズルの組み合わせ
|
ユーザー |
👑 |
提出日時 | 2022-11-02 16:46:37 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 124 ms / 2,000 ms |
コード長 | 551 bytes |
コンパイル時間 | 223 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 125,268 KB |
最終ジャッジ日時 | 2024-07-17 06:00:49 |
合計ジャッジ時間 | 9,719 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 99 |
ソースコード
MOD = 10 ** 9 + 7 m = int(input()) H = list(map(int, input().split())) if H == [0]: print(1) exit() n = len(H) m -= sum(H) + len(H) - 1 if m < 0: print("NA") exit() def nCk(n, k): if k > n or k < 0: return 0 ret = 1 for i in range(n, n - k, -1): ret *= i ret %= MOD inv = 1 for i in range(1, k + 1): inv *= i inv %= MOD return ret * pow(inv, MOD - 2, MOD) % MOD def nHk(n, k): if n == k == 0: return 1 return nCk(n + k - 1, k) print(nHk(1 + len(H), m))