CF1133B Preparation for International Women's Day
题目描述
国际妇女节即将到来!Polycarp 正在为这个节日做准备。
商店里有 $n$ 个糖果盒,第 $i$ 个盒子里有 $d_i$ 颗糖果。
Polycarp 想为 $k$ 个女孩准备尽可能多的礼物。每份礼物由恰好两个盒子组成。每个女孩都应该能平分每份礼物,因此每份礼物中的糖果总数(即两个盒子的糖果数之和)应能被 $k$ 整除。换句话说,只有当 $d_i + d_j$ 能被 $k$ 整除时,两个盒子 $i$ 和 $j$($i \ne j$)才能组合成一份礼物。
Polycarp 最多能送出多少个盒子?当然,每个盒子最多只能被用在一份礼物中。Polycarp 不能“部分”使用盒子,也不能在盒子之间重新分配糖果。
输入格式
输入的第一行包含两个整数 $n$ 和 $k$($1 \le n \le 2 \cdot 10^5, 1 \le k \le 100$),分别表示盒子的数量和女孩的数量。
第二行包含 $n$ 个整数 $d_1, d_2, \dots, d_n$($1 \le d_i \le 10^9$),其中 $d_i$ 表示第 $i$ 个盒子中的糖果数。
输出格式
输出一个整数,表示 Polycarp 最多能作为礼物送出的盒子数。
说明/提示
在第一个样例中,Polycarp 可以送出的盒子对如下(括号内为盒子的编号):
- $(2, 3)$;
- $(5, 6)$;
- $(1, 4)$。
所以答案是 $6$。
在第二个样例中,Polycarp 可以送出的盒子对如下(括号内为盒子的编号):
- $(6, 8)$;
- $(2, 3)$;
- $(1, 4)$;
- $(5, 7)$。
所以答案是 $8$。
在第三个样例中,Polycarp 可以送出的盒子对如下(括号内为盒子的编号):
- $(1, 2)$;
- $(6, 7)$。
所以答案是 $4$。
由 ChatGPT 4.1 翻译