CF1497B.M-arrays

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array a1,a2,,ana_1, a_2, \ldots, a_n consisting of nn positive integers and a positive integer mm .

You should divide elements of this array into some arrays. You can order the elements in the new arrays as you want.

Let's call an array mm -divisible if for each two adjacent numbers in the array (two numbers on the positions ii and i+1i+1 are called adjacent for each ii ) their sum is divisible by mm . An array of one element is mm -divisible.

Find the smallest number of mm -divisible arrays that a1,a2,,ana_1, a_2, \ldots, a_n is possible to divide into.

输入格式

The first line contains a single integer tt (1t1000)(1 \le t \le 1000) — the number of test cases.

The first line of each test case contains two integers nn , mm (1n105,1m105)(1 \le n \le 10^5, 1 \le m \le 10^5) .

The second line of each test case contains nn integers a1,a2,,ana_1, a_2, \ldots, a_n (1ai109)(1 \le a_i \le 10^9) .

It is guaranteed that the sum of nn and the sum of mm over all test cases do not exceed 10510^5 .

输出格式

For each test case print the answer to the problem.

输入输出样例

  • 输入#1

    4
    6 4
    2 2 8 6 9 4
    10 8
    1 1 1 5 2 4 4 8 6 7
    1 1
    666
    2 2
    2 4

    输出#1

    3
    6
    1
    1

说明/提示

In the first test case we can divide the elements as follows:

  • [4,8][4, 8] . It is a 44 -divisible array because 4+84+8 is divisible by 44 .
  • [2,6,2][2, 6, 2] . It is a 44 -divisible array because 2+62+6 and 6+26+2 are divisible by 44 .
  • [9][9] . It is a 44 -divisible array because it consists of one element.
首页