Олимпиадный тренинг

Задача . C. Соединение точек


Вам дан набор точек \(x_1\), \(x_2\), ..., \(x_n\) на числовой прямой.

Две точки \(i\) и \(j\) могут быть соединены друг с другом при выполнении следующих условий:

  • Ни \(i\), ни \(j\) не соединены ни с какими другими точками;
  • \(|x_i - x_j| \ge z\).

Какое максимальное количество пар точек вы можете соединить друг с другом?

Входные данные

Первая строка содержит два целых числа \(n\) и \(z\) (\(2 \le n \le 2 \cdot 10^5\), \(1 \le z \le 10^9\)) — количество точек и ограничение на дистанцию между соединяемыми точками, соответственно.

Вторая строка содержит \(n\) целых чисел \(x_1\), \(x_2\), ..., \(x_n\) (\(1 \le x_i \le 10^9\)).

Выходные данные

Выведите одно целое число — максимальное количество пар точек, которое вы можете соединить друг с другом.

Примечание

В первом примере вы можете соединить точку \(1\) с точкой \(2\) (\(|3 - 1| \ge 2\)), и точку \(3\) с точкой \(4\) (\(|7 - 3| \ge 2\)).

Во втором примере вы можете соединить точку \(1\) с точкой \(3\) (\(|5 - 10| \ge 5\)).


Примеры
Входные данныеВыходные данные
1 4 2
1 3 3 7
2
2 5 5
10 9 5 8 7
1

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя