CF1850D Balanced Round
Description
You are the author of a Codeforces round and have prepared $ n $ problems you are going to set, problem $ i $ having difficulty $ a_i $ . You will do the following process:
- remove some (possibly zero) problems from the list;
- rearrange the remaining problems in any order you wish.
A round is considered balanced if and only if the absolute difference between the difficulty of any two consecutive problems is at most $ k $ (less or equal than $ k $ ).
What is the minimum number of problems you have to remove so that an arrangement of problems is balanced?
Input Format
The first line contains a single integer $ t $ ( $ 1 \leq t \leq 1000 $ ) — the number of test cases.
The first line of each test case contains two positive integers $ n $ ( $ 1 \leq n \leq 2 \cdot 10^5 $ ) and $ k $ ( $ 1 \leq k \leq 10^9 $ ) — the number of problems, and the maximum allowed absolute difference between consecutive problems.
The second line of each test case contains $ n $ space-separated integers $ a_i $ ( $ 1 \leq a_i \leq 10^9 $ ) — the difficulty of each problem.
Note that the sum of $ n $ over all test cases doesn't exceed $ 2 \cdot 10^5 $ .
Output Format
For each test case, output a single integer — the minimum number of problems you have to remove so that an arrangement of problems is balanced.
Explanation/Hint
For the first test case, we can remove the first $ 2 $ problems and construct a set using problems with the difficulties $ [4, 5, 6] $ , with difficulties between adjacent problems equal to $ |5 - 4| = 1 \leq 1 $ and $ |6 - 5| = 1 \leq 1 $ .
For the second test case, we can take the single problem and compose a round using the problem with difficulty $ 10 $ .