結果

問題 No.797 Noelちゃんとピラミッド
ユーザー tomarint2tomarint2
提出日時 2019-03-15 22:54:07
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 270 ms / 2,000 ms
コード長 668 bytes
コンパイル時間 150 ms
コンパイル使用メモリ 82,260 KB
実行使用メモリ 91,648 KB
最終ジャッジ日時 2024-07-01 21:28:38
合計ジャッジ時間 11,714 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 60
権限があれば一括ダウンロードができます

ソースコード

diff #

mod = 1000000007

def add(a, b):
    return (a + b) % mod

def sub(a, b):
    return (a + mod - b) % mod

def mul(a, b):
    return ((a % mod) * (b % mod)) % mod

def power(x, y):
    if   y == 0     : return 1
    elif y == 1     : return x % mod
    elif y % 2 == 0 : return power(x, y//2)**2 % mod
    else            : return power(x, y//2)**2 * x % mod

def div(a, b):
    return mul(a, power(b, mod-2))

N=int(input())
a=list(map(int,input().split()))
ans=0
b=[1 for i in range(N+1)]
for i in range(1,N//2+1):
    b[i]=div(mul(b[i-1],(N-i)),i)
for i in range(N//2):
    ans+=mul(add(a[i],a[N-1-i]),b[i])
if N%2==1:
    ans+=mul(a[N//2],b[N//2])
print(ans % mod)
0