#ABC335G. Discrete Logarithm Problems

Discrete Logarithm Problems

题目描述

给定 NN 个整数 A1,,ANA_1, \dots, A_N 和一个质数 PP。求满足以下两个条件的整数对 (i,j)(i, j) 的数量:

  • 1i,jN1 \le i, j \le N
  • 存在正整数 kk,使得 AikAj(modP)A_i^k \equiv A_j \pmod{P}

输入格式

输入从标准输入给出,格式如下:

  • NN PP
  • A1A_1 A2A_2 ... ANA_N

输出格式

输出答案。

3 13
2 3 5
5

有 5 个满足条件的数对:(1,1),(1,2),(1,3),(2,2),(3,3)(1, 1), (1, 2), (1, 3), (2, 2), (3, 3)

例如,对于数对 (1,3)(1, 3),取 k=9k = 9,则 A19=5125=A3(mod13)A_1^9 = 512 \equiv 5 = A_3 \pmod{13}

5 2
1 1 1 1 1
25
10 9999999999971
141592653589 793238462643 383279502884 197169399375 105820974944 592307816406 286208998628 34825342117 67982148086 513282306647
63

数据规模与约定

  • 2N2×1052 \le N \le 2 \times 10^5
  • 1Ai<P1 \le A_i < P
  • 2P10132 \le P \le 10^{13}
  • PP 是质数。
  • 所有输入值均为整数。