解説

i<j(Ai+Aj)p\displaystyle \sum^{i<j}(A_i+A_j)^p の値をそのまま求めようとすると、nC2_nC_2 通りを全探索する必要があるため累乗計算を含めて O(N2logp)O(N^2\log p) かかり実行時間制限に間に合いません。よって、計算量の改善を考えます。

ここで、(Ai+Aj)p(A_i+A_j)^p を変形してみます。

(Ai+Aj)p=k=0p(pk)AipkAjk\displaystyle (A_i+A_j)^p = \sum_{k=0}^{p} \begin{pmatrix}p\\k\end{pmatrix}A_i^{p-k}A_j^k この値は、k=0,pk=0,p のときそれぞれ Aip,AjpA_i^p,A_j^p となり、 kk の値がそれ以外のときは二項係数の素因数に必ず pp を含むため pp の倍数になります。 よって、i<j(Ai+Aj)pi<j(Aip+Ajp)\displaystyle \sum^{i<j}(A_i+A_j)^p \equiv\displaystyle \sum^{i<j}(A_i^p+A_j^p) (mod p)(mod \ p)

が成り立ちます。ここで、AipA_i^p は、この和の中に N1N-1 回出てくるため、i<j(Aip+Ajp)=(N1)i=1NAip\displaystyle \sum^{i<j}(A_i^p+A_j^p) = (N-1)\sum_{i=1}^{N}A_i^{p} です。

したがって、答えは (N1)i=1NAip(N-1)\sum_{i=1}^{N}A_i^{p}pp で割った余りとなります。時間計算量は累乗計算を含めて O(Nlogp)O(N \log p) であり、実行時間制限に間に合います。よって、この問題を解くことができました。

追記

i<j(Ai+Aj)pi<j(Aip+Ajp)\displaystyle \sum^{i<j}(A_i+A_j)^p \equiv\displaystyle \sum^{i<j}(A_i^p+A_j^p) (mod p)(mod \ p) の変形は、1年生の夢 と呼ばれる実数範囲では成り立たない等式 (a+b)p=ap+bp(a+b)^p = a^p + b^p が本当に成り立ってしまうケースです。この等式は pp が素数であり、かつ mod pmod \ p の世界であれば成り立つことが知られています。