Minimalna liczba dni potrzebnych do rozwiązania listy pytań

Jest N problemów ponumerowanych 1..N, które musisz wypełnić. Zaaranżowałeś problemy w zwiększaniu stopnia trudności, a i-ty problem oszacował poziom trudności i. Przypisałeś również ocenę vi do każdego problemu. Problemy z podobnymi wartościami vi mają podobny charakter. Każdego dnia wybierzesz podzbiór problemów i je rozwiążesz. Zdecydowałeś, że każdy kolejny problem rozwiązany w ciągu dnia powinien być trudniejszy niż poprzedni problem, który rozwiązałeś tego dnia. Ponadto, aby nie było to nudne, kolejne rozwiązywane problemy powinny różnić się w ocenie vi o co najmniej K. Jaka jest najmniejsza liczba dni, w których można rozwiązać wszystkie problemy?

Wejście: Pierwsza linia zawiera liczbę przypadków testowych, które następują po testach T. T. Każdy przypadek zawiera liczbę całkowitą N i K w pierwszym wierszu, po których następują liczby całkowite v1, ..., vn w drugim wierszu.

Wyjście: Wyjście linii T, po jednym dla każdego przypadku testowego, zawierające minimalną liczbę dni, w których można rozwiązać wszystkie problemy.

Ograniczenia:
1 <= T <= 100
1 <= N <= 300
1 <= vi <= 1000
1 <= K <= 1000

Przykładowy wpis:
2
3 2
5 4 7
5 1
5 3 4 5 6

Przykładowe wyjście:
2
1

To jedno z wyzwań ze strony wywiadu.
Poniżej moje podejście
Zacznij od pierwszego pytania i dowiedz się, że maksymalna liczba możliwych pytań może zostać rozwiązana i usuń te pytania z listy pytań. Teraz zacznij od pierwszego elementu listy pozostającej i zrób to do chwili, gdy rozmiar listy pytań wynosi 0. Dostaję błędna odpowiedź z tej metody, więc szukam algo, aby rozwiązać to wyzwanie.

questionAnswers(4)

yourAnswerToTheQuestion