BETA

Difficulty Level: Easy

Total Submissions: 221 Accuracy:

12.67%

Equalize an array in minimum operations
     

You are given with an array of N integers A[0], A[1], … , A[N-1] and an integer k. Your task is to make all the elements of the given array equal in a minimum number of ‘moves’.  All the elements of the array are non-negative.

In each ‘move’ you may add or subtract k from any element of the array.

Print -1 if it is not possible to make all the elements equal in any number of moves.

Input:

The first line contains a positive integer T denoting the number of test cases. Each of the test case consists of 2 lines. The first line of each test case contains two integers N and k. The next line contains space separated sequence of N integers.​
Output:

Output the minimum number of ‘operations’ for each case on a new line. As the results can be large, print your answer modulo 10^9 + 7.​
Constraints:

1 <= T <= 10^3

1 <= N <= 10^6

1 <= k <= 10^3​
Example:

Input:

1

4 2

7 5 21 17

Output:

13

Explanation:

We can add k = 2 to A[1] once and subtract k = 2 from A[2] seven times and from A[3] five times.

The resulting array would be- 7 7 7 7

Number of moves = 1 + 7 + 5 = 13.

** For More Input/Output Examples Use 'Expected Output' option **

Contributor: Sajal Agrawal

Set Default Code

					   
It is recommended to 'Compile & Test' your code before clicking 'Submit'!

Compilation/Execution Result:

Need help with your code? Please use ide.geeksforgeeks.org, generate link and share the link here.