Count Pairs
题意翻译
给定一个质数 $p$ , 一个长度为 $n$ 的序列 $a_1,a_2,...,a_n$ 和一个整数 $k$。保证序列中的元素互不相同。
求所有数对 $(i, j) (1 \le i,j \le n)$ 中满足 $(a_i + a_j) * (a_i^2 + a_j^2 ) \equiv k \bmod p.$ 的个数.
题目描述
You are given a prime number $ p $ , $ n $ integers $ a_1, a_2, \ldots, a_n $ , and an integer $ k $ .
Find the number of pairs of indexes $ (i, j) $ ( $ 1 \le i < j \le n $ ) for which $ (a_i + a_j)(a_i^2 + a_j^2) \equiv k \bmod p $ .
输入输出格式
输入格式
The first line contains integers $ n, p, k $ ( $ 2 \le n \le 3 \cdot 10^5 $ , $ 2 \le p \le 10^9 $ , $ 0 \le k \le p-1 $ ). $ p $ is guaranteed to be prime.
The second line contains $ n $ integers $ a_1, a_2, \ldots, a_n $ ( $ 0 \le a_i \le p-1 $ ). It is guaranteed that all elements are different.
输出格式
Output a single integer — answer to the problem.
输入输出样例
输入样例 #1
3 3 0
0 1 2
输出样例 #1
1
输入样例 #2
6 7 2
1 2 3 4 5 6
输出样例 #2
3
说明
In the first example:
$ (0+1)(0^2 + 1^2) = 1 \equiv 1 \bmod 3 $ .
$ (0+2)(0^2 + 2^2) = 8 \equiv 2 \bmod 3 $ .
$ (1+2)(1^2 + 2^2) = 15 \equiv 0 \bmod 3 $ .
So only $ 1 $ pair satisfies the condition.
In the second example, there are $ 3 $ such pairs: $ (1, 5) $ , $ (2, 3) $ , $ (4, 6) $ .