CF1188B Count Pairs

题目描述

给定一个质数 $p$,$n$ 个整数 $a_1, a_2, \ldots, a_n$,以及一个整数 $k$。 请你计算有多少对下标 $(i, j)$($1 \le i < j \le n$)满足 $(a_i + a_j)(a_i^2 + a_j^2) \equiv k \pmod{p}$。

输入格式

第一行包含三个整数 $n, p, k$($2 \le n \le 3 \cdot 10^5$,$2 \le p \le 10^9$,$0 \le k \le p-1$)。保证 $p$ 是质数。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le p-1$)。保证所有元素互不相同。

输出格式

输出一个整数,表示满足条件的下标对的数量。

说明/提示

在第一个样例中: $(0+1)(0^2 + 1^2) = 1 \equiv 1 \pmod{3}$。 $(0+2)(0^2 + 2^2) = 8 \equiv 2 \pmod{3}$。 $(1+2)(1^2 + 2^2) = 15 \equiv 0 \pmod{3}$。 因此,只有 $1$ 对满足条件。 在第二个样例中,有 $3$ 对满足条件,分别是 $(1, 5)$、$(2, 3)$、$(4, 6)$。 由 ChatGPT 4.1 翻译