結果
| 問題 |
No.1629 Sorting Integers (SUM of M)
|
| コンテスト | |
| ユーザー |
sotanishy
|
| 提出日時 | 2021-07-30 21:00:00 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 324 ms / 2,000 ms |
| コード長 | 874 bytes |
| コンパイル時間 | 215 ms |
| コンパイル使用メモリ | 81,920 KB |
| 実行使用メモリ | 80,256 KB |
| 最終ジャッジ日時 | 2024-09-15 21:22:22 |
| 合計ジャッジ時間 | 3,548 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge6 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 14 |
ソースコード
import sys
input = sys.stdin.readline
def comb_preprocess(n, mod):
fact = [1] * (n+1)
fact_inv = [1] * (n+1)
for i in range(1, n+1):
fact[i] = i * fact[i-1] % mod
fact_inv[n] = pow(fact[n], mod-2, mod)
for i in range(1, n+1)[::-1]:
fact_inv[i-1] = i * fact_inv[i] % mod
def comb(n, k):
if k < 0 or n < k:
return 0
return fact[n] * fact_inv[k] * fact_inv[n-k] % mod
return fact, fact_inv, comb
mod = 10**9 + 7
N = int(input())
c = [0] + list(map(int, input().split()))
fact, fact_inv, comb = comb_preprocess(N, mod)
den = 1
for d in range(1, 10):
den = den * fact_inv[c[d]] % mod
ans = 0
pow10 = [1] * N
for i in range(1, N):
pow10[i] = 10 * pow10[i-1] % mod
for i in range(N):
for d in range(1, 10):
ans += d * pow10[i] * fact[N-1] * den * c[d]
ans %= mod
print(ans)
sotanishy