该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

B-相同余数对(remainder)

题目背景

在一次数论训练中,小 A 把一列整数都拿去对同一个正整数 mm 取模。

他发现,有些数虽然本身不同,但取模后的结果却一样。于是他想知道:在这列数中,一共有多少对数会得到相同的余数。

题目描述

给定一个长度为 nn 的整数序列 a1,a2,,ana_1,a_2,\dots,a_n,以及一个正整数 mm

请你统计有多少对下标 (i,j)(i,j) 满足:

1i<jn1 \le i < j \le n

aimodm=ajmodma_i \bmod m = a_j \bmod m

输出满足条件的数对数量。

输入格式

第一行输入两个整数 n,mn,m,分别表示序列长度和取模的模数。

第二行输入 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n

输出格式

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

输入输出样例

输入 #1

6 4
1 5 7 9 10 14

输出 #1

4

样例解释

将每个数对 44 取模之后,余数分别为: 1 1 3 1 2 2\text{1 1 3 1 2 2}

其中:

  • 余数为 11 的数有 33 个,可以组成 33 对;
  • 余数为 22 的数有 22 个,可以组成 11 对;
  • 余数为 33 的数有 11 个,不能组成数对。

所以答案为:

3+1=43+1=4

数据范围

对于所有测试数据,保证:$1 \le n \le 2 \times 10^5,\quad 1 \le m \le 10^9,\quad 1 \le a_i \le 10^{18}$

本题共设 2020 个测试点,各测试点满足的限制如下:

测试点编号 分值 nn mm 特殊性质
1\text{1} 55 10\le 10 10\le 10 无特殊性质
2\text{2} =1=1 AA
3\text{3} 20\le 20 BB
4\text{4} CC
5\text{5} 100\le 100 100\le 100 无特殊性质
6\text{6} =2=2 DD
7\text{7} 1000\le 1000 EE
8\text{8} FF
9\text{9} 2000\le 2000 无特殊性质
10\text{10} 5000\le 5000 105\le 10^5 BB
11\text{11} 104\le 10^4 无特殊性质
12\text{12} 2×104\le 2 \times 10^4 GG
13\text{13} 5×104\le 5 \times 10^4 109\le 10^9 无特殊性质
14\text{14} 8×104\le 8 \times 10^4 EE
15\text{15} 105\le 10^5 FF
16\text{16} 1.2×105\le 1.2 \times 10^5 CC
17\text{17} 1.5×105\le 1.5 \times 10^5 无特殊性质
18\text{18} 1.8×105\le 1.8 \times 10^5 GG
19\text{19} 2×105\le 2 \times 10^5 AADD
20\text{20} 无特殊性质

特殊性质 AA:保证 m=1m=1

特殊性质 BB:保证所有数对 mm 取模后的结果两两不同。

特殊性质 CC:保证所有数对 mm 取模后的结果都相同。

特殊性质 DD:保证 m=2m=2

特殊性质 EE:保证 ai109a_i \le 10^9

特殊性质 FF:保证序列已经按非递减顺序给出。

特殊性质 GG:保证 m25m \le 25

「果壳杯」 ROUND 44 (Div. 4)

未参加
状态
已结束
规则
IOI
题目
5
开始于
2026-4-3 18:00
结束于
2026-4-10 18:00
持续时间
2 小时
主持人
参赛人数
17