Edit

【pythonでABC177を解説】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()

-Edit
-