結果
問題 | No.1629 Sorting Integers (SUM of M) |
ユーザー |
|
提出日時 | 2021-07-30 22:00:04 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 363 ms / 2,000 ms |
コード長 | 857 bytes |
コンパイル時間 | 235 ms |
コンパイル使用メモリ | 82,276 KB |
実行使用メモリ | 117,376 KB |
最終ジャッジ日時 | 2024-09-16 00:10:18 |
合計ジャッジ時間 | 3,583 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge6 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 14 |
ソースコード
n = int(input()) C = list(map(int,input().split())) mod = 10**9+7 fact = [1,1] finv = [1,1] inv = [0,1] for i in range(2,n+5): fact.append((fact[-1]*i)%mod) inv.append((inv[mod%i]*(mod-mod//i))%mod) finv.append((finv[-1]*inv[-1])%mod) def nCr(n,r,mod): if r > n: return 0 else: return fact[n]*finv[r]%mod*finv[n-r]%mod ans = 0 ten = 1 for i in range(1,n+1): for j,c in enumerate(C,1): if c == 0: continue can = 1 all = n-1 for k in range(9): if k == j-1: can *= nCr(all,C[k]-1,mod) can %= mod all -= C[k]-1 else: can *= nCr(all,C[k],mod) can %= mod all -= C[k] ans += ten*can*j ans %= mod ten *= 10 ten %= mod print(ans)