問題概要
問題ページ
-
C - Sum of product of pairs
問題ページへ移動する
問題文
\(N\) 個の整数 \(A_1,\ldots,A_N\) が与えられます。
\(1\leq i < j \leq N\) を満たす全ての組 \((i,j)\) についての \(A_i \times A_j\) の和を \(\bmod (10^9+7)\) で求めてください。
制約
- \(2 \leq N \leq 2\times 10^5\)
- \(0 \leq A_i \leq 10^9\)
- 入力は全て整数
問題の考察
ACコード
import sys
def solve():
readline = sys.stdin.buffer.readline
mod = 10 ** 9 + 7
n = int(readline())
a = list(map(int, readline().split()))
sa = sum(a)
t = 0
for i in range(n):
sa -= a[i]
t += sa * a[i]
t %= mod
print(t)
if __name__ == '__main__':
solve()