atcoder#AGC047C. [AGC047C] Product Modulo

[AGC047C] Product Modulo

配点 : 800800

問題文

PP を素数 200003200\,003 とします。NN 個の整数 A1,A2,,ANA_1, A_2, \ldots, A_N が与えられるので、N(N1)/2N \cdot (N-1) / 2 個すべての非順序対 (Ai,Aj)(A_i, A_j) (i<ji < j) に対する ((AiAj)modP)((A_i \cdot A_j) \bmod P) の和を求めてください。

和を PP で割った余りを求めるのではないことに注意してください。

制約

  • 2N2000002 \leq N \leq 200\,000
  • 0Ai<P=2000030 \leq A_i < P = 200\,003
  • 入力中のすべての値は整数である。

入力

入力は以下の形式で標準入力から与えられる。

NN

A1A_1 A2A_2 \cdots ANA_N

出力

一つの整数、すなわち ((AiAj)modP)((A_i \cdot A_j) \bmod P) の和を出力せよ。

4
2019 0 2020 200002
474287

00 でない積は以下の通りです。

  • 20192020modP=783202019 \cdot 2020 \bmod P = 78320
  • 2019200002modP=1979842019 \cdot 200002 \bmod P = 197984
  • 2020200002modP=1979832020 \cdot 200002 \bmod P = 197983

よって、答えは 0+78320+197984+0+0+197983=4742870 + 78320 + 197984 + 0 + 0 + 197983 = 474287 となります。

5
1 1 2 2 100000
600013