結果
問題 | No.389 ロジックパズルの組み合わせ |
ユーザー |
|
提出日時 | 2016-07-09 15:45:53 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 171 ms / 2,000 ms |
コード長 | 811 bytes |
コンパイル時間 | 101 ms |
コンパイル使用メモリ | 7,072 KB |
実行使用メモリ | 27,224 KB |
最終ジャッジ日時 | 2024-10-13 09:34:19 |
合計ジャッジ時間 | 6,017 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 99 |
ソースコード
#!/usr/bin/env python #coding:utf8 MOD = 1000000007 def read(): M = input() hList = map(int, raw_input().split()) return M, hList def mypow(p, n): if n == 0: return 1 t = mypow(p, n / 2) return t * t % MOD if n % 2 == 0 else t * t * p % MOD def nCk(n, k): nume = 1 for i in range(k): nume = nume * (n - i) % MOD deno = 1 for i in range(k): deno = deno * (i + 1) % MOD return nume * mypow(deno, MOD - 2) % MOD def nHk(n, k): return nCk(n + k - 1, k) def work((M, hList)): if sum(hList) == 0: print 1 return N = len(hList) + 1 K = M - sum(hList) - (len(hList) - 1) if K < 0: print "NA" else: print nHk(N, K) if __name__ == "__main__": work(read())