#z1071. 簪花围的色彩搭配 (Color)升级版

簪花围的色彩搭配 (Color)升级版

题目背景

在泉州蟳埔村,头戴“簪花围”的蟳埔女是一道绝美的风景线。各种鲜艳的花朵层层叠戴在发髻上,色彩斑斓。为了庆祝传统节日,小闽准备制作一批全新的簪花围。

题目描述

小闽手里有 NN 朵备选的花卉,每朵花都有一个代表其色彩饱和度的正整数权值 AiA_i。 小闽认为,只有当三朵不同的花的权值之和能够被一个幸运常数 MM 整除时,这三朵花搭配在一起才能呈现出最完美的视觉效果。

也就是说,他需要从 NN 朵花中任选三朵不一样的花(即挑选三个不同的下标 i,j,ki, j, k,满足 1i<j<kN1 \le i < j < k \le N),使得:

(Ai+Aj+Ak)(modM)==0(A_i + A_j + A_k) \pmod M == 0

请你帮小闽计算出,一共有多少种不同的三朵花搭配方案可以达到完美的视觉效果。

输入格式

第一行包含两个正整数 NNMM,分别表示花卉的总数和幸运常数。 第二行包含 NN 个正整数,用空格隔开,表示每朵花的色彩饱和度权值 A1,A2,,ANA_1, A_2, \dots, A_N

输出格式

输出一个整数,表示满足完美视觉效果的搭配方案总数。

输入输出样例

输入 #1

5 3
1 2 3 4 5

输出 #1

4

样例说明: 满足条件的 4 种组合为:

  • (1, 2, 3) 1+2+3=6\rightarrow 1+2+3=6(能被 3 整除)
  • (1, 3, 5) 1+3+5=9\rightarrow 1+3+5=9(能被 3 整除)
  • (2, 3, 4) 2+3+4=9\rightarrow 2+3+4=9(能被 3 整除)
  • (3, 4, 5) 3+4+5=12\rightarrow 3+4+5=12(能被 3 整除)

说明/提示

  • 对于 30%30\% 的数据:3N1503 \le N \le 1501M101 \le M \le 10
  • 对于 60%60\% 的数据:3N20003 \le N \le 20001M1001 \le M \le 100
  • 对于 100%100\% 的数据:3N2×1053 \le N \le 2 \times 10^51M5001 \le M \le 5001Ai1091 \le A_i \le 10^9