結果

問題 No.797 Noelちゃんとピラミッド
ユーザー pasoconhoshiipasoconhoshii
提出日時 2019-03-15 22:39:10
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 344 ms / 2,000 ms
コード長 801 bytes
コンパイル時間 102 ms
コンパイル使用メモリ 12,544 KB
実行使用メモリ 26,668 KB
最終ジャッジ日時 2024-07-01 21:16:42
合計ジャッジ時間 13,071 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 60
権限があれば一括ダウンロードができます

ソースコード

diff #

N = int(input())
A = list(map(int, input().split()))

mod = 10**9+7
factorial = [1]
for n in range(1, N+1):
    factorial.append( factorial[n-1] * n % mod)

invFact = [0] * (N+1)
invFact[N] = pow(factorial[N], mod-2, mod)

for n in range(N-2+1, -1, -1):
    invFact[n] = invFact[n+1] * (n+1) % mod

def combi(n,m):
    try:
        return factorial[n] * invFact[m] * invFact[n-m] % mod
    except:
        print(n, m)

# print(factorial, invFact)
coeff = [0] * (N)
for i in range(N):
    # coeff[i] = combi( max(N-i-1, i) , N-1 - max(N-i-1,i))
    coeff[i]  =  factorial[N-1] * invFact[  max(N-i-1, i) ] * invFact[ N-1 - max(N-i-1,i)]  % mod
    # print(i, max(N-i-1, i), N-1-max(N-i-1,i), coeff[i])

# print(coeff)
ans = 0

for i in range(N):
    ans = (ans + coeff[i] * A[i] % mod) % mod
print(ans)
0