😸
Positive Pairs - MojaCoder
MojaCoder に問題を投稿したので、解法を書きます。
AtCoder緑レベルです。
問題
問題文
制約
1 \le N \le 2 \times 10^5 |A_i| \le 10^9 - 入力はすべて整数
解説
解説
1. 正負に分ける
A_i A_j の総和を計算する
2.
すると、
また、
これによって、
コード
MOD = 10**9 + 7
N = int(input())
A = map(int, input().split())
Ap, An = [], []
for x in A:
if x >= 0: Ap.append(x)
else: An.append(x)
ans = 0
for A in [Ap, An]:
N = len(A)
A_sum = [0]
for i in range(N-1): A_sum.append((A_sum[-1] + A[N - i - 1]) % MOD)
for i in range(N): ans = (ans + A[i] * A_sum[N - i - 1]) % MOD
print(ans)
Discussion