两件货能免检,当且仅当 (wi+wj) 是 t 的倍数。只由余数决定:记 ri=wimodt,则要 ri+rj≡0(modt)。
江岸货栈的调度员要把待发货物两两并箱。货栈里现有 n 件货,第 i 件的重量是 wi。值班条例规定:只有当两件货的重量之和恰好是装载模数 t 的倍数时,这一对才能免检并箱放行。调度员想统计:一共有多少种挑选两件货的方案,能够满足这条免检规则。
货物即使重量相同,也按不同件来区分。选出第 i 件与第 j 件(i=j)算一种方案,与顺序无关,即 (i,j) 和 (j,i) 视为同一种。
约束:
2 ≤ n ≤ 1000001 ≤ t ≤ 1000000 ≤ wi ≤ 1000000000第一行两个整数 n 和 t(2 ≤ n ≤ 100000,1 ≤ t ≤ 100000),表示货物件数和装载模数。
第二行 n 个整数 w1,w2,…,wn(0 ≤ wi ≤ 1000000000),表示各件货物的重量。
输出一个非负整数,表示能够免检并箱的无序配对方案数。
输入
5 4
1 3 5 7 8
输出
4
说明
各件重量对 4 取余依次为 1,3,1,3,0。余数 1 与余数 3 互补,共 2 × 2 = 4 对;余数 0 只有 1 件,无法自成一对。
输入
3 7
0 7 14
输出
3
说明
三件重量都是 7 的倍数,任意两件之和仍是 7 的倍数。从 3 件里任选 2 件,方案数为 C32=‘3‘。
输入
6 4
2 2 2 6 10 14
输出
15
说明
六件重量对 4 取余都是 2,而 2 + 2 恰好是 4 的倍数。从 6 件里任选 2 件,方案数为 C62=‘15‘。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册