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

余配(rpai)

题目描述

Y 同学有一个长度为 nn 的非负整数序列 a1,a2,…,ana_1,a_2,\ldots,a_n 和一个正整数 kk。他想从中选出两个不同的位置 i,ji,j,满足 1≤i<j≤n1 \le i < j \le n,并且 ai+aja_i+a_j 能被 kk 整除。

现在给定多组数据,请你分别求出满足条件的下标对数量。

输入格式

第一行包含一个整数 TT,表示测试组数。

对于每组测试数据,第一行包含两个整数 n,kn,k。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

对每组测试数据,输出一行一个整数,表示满足条件的下标对数量。

样例

样例输入 #1

2
5 4
1 3 2 6 5
5 3
1 2 3 4 5

样例输出 #1

3
4

数据范围与约定

对于 100%100\% 的数据,保证 1≤T≤2×1051 \le T \le 2\times 10^5,1≤∑n≤2×1051 \le \sum n \le 2\times 10^5,1≤k≤1091 \le k \le 10^9,0≤ai≤1090 \le a_i \le 10^9。

测试点编号 分值 ∑n≤\sum n \le k≤k \le ai≤a_i \le 特殊性质
1∼21 \sim 2 1010 20002000 100100 10610^6 无
3∼53 \sim 5 1515 10510^5 22 10910^9 特殊性质 A
6∼86 \sim 8 10910^9 特殊性质 B
9∼129 \sim 12 2020 5×1045\times 10^4 无
13∼1613 \sim 16 10510^5
17∼2017 \sim 20 2×1052\times 10^5
  • 特殊性质 A:保证 k=2k=2。
  • 特殊性质 B:保证所有 ai<ka_i<k。