


The first line of input contains a single integer T, representing the number of test cases or queries to be run.
Then the test cases follow.
The first line of each test case contains a positive integer N which represents the number of elements of an array.
The Second line of each test case contains N integers denoting the elements of the array.
The third line of each test case contains a positive integer K.
For each test case, return the minimum difference between the maximum element and minimum element of the array by either increasing or decreasing elements of the array by K.
You do not need to print anything. It has already been taken care of.
1 <= T <= 5
1 <= N <= 10^5
0 <= arr[i] <= 10^5
0 <= K <= 10^5
Time limit = 1 sec
For every element, we have two choices either increase it by k or decrease it by k.
The big thing to observe is that for any given element, if you choose to increase its height from hi to hi + k, then you might as well increase all shorter elements: that won't affect the maximum (because if hj < hi, then hj + k < hi + k), and may help by increasing the minimum. Conversely, if you choose to decrease the height of a tower from hi to hi − k, then you might as well decrease the heights of all taller towers.
So, for every element at index i, we will increment all the elements which are smaller than that element by k and decrement all elements which are larger or equal to that element by k. Thus the minimum of the array would be either arr[0]+k or arr[i]-k. And the maximum of the array would be either arr[n-1]-k or arr[i-1]+k.