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

Задача . Стабильные параллели


Задача

Темы: Жадный алгоритм

Паша и Тёма приехали преподавать в зимний ноутбучный университет. Теперь им необходимо разобраться с учениками.

Есть n учеников, пронумерованных от 1 до n. Уровень знаний i-го ученика равен ai. Всех учеников нужно распределить на стабильные параллели. Параллель называется стабильной, если после сортировки всех учеников параллели в порядке возрастания их уровня знаний у любых двух подряд идущих учеников разница уровня знаний не превосходит x.

Преподаватели достаточно находчивые люди, поэтому они могут пригласить не более k дополнительных учеников с любым требуемым уровнем знаний. Определите минимальное число стабильных параллелей, на которые можно распределить всех учеников (возможно, пригласив не более k новых учеников).

Формат входных данных
В первой строке вводятся три целых числа n, k, x (1n200000,0k1018,1x1018) — количество учеников, сколько учеников можно пригласить дополнительно и максимальная допустимая разница уровня знаний.

Во второй строке вводится n целых чисел a1,a2,,an (1ai1018) — уровни знаний учеников.

Формат выходных данных
В единственной строке выведите одно число — искомое минимальное число стабильных параллелей, на которое можно разбить учеников.


Примечание

В первом примере из условия можно пригласить учеников с уровнями знаний, равными 2 и 11. Тогда учеников можно разделить на следующие стабильные параллели:

  1. [1,1,2,5,8,11,12,13],

  2. [20,22].

Во втором примере из условия новых учеников приглашать нельзя, поэтому потребуется 3 параллели:

  1. [1,1,5,5,20,20]

  2. [60,70,70,70,80,90]

  3. [420]

 


Примеры
Входные данныеВыходные данные
1 8 2 3
1 1 5 8 12 13 20 22
2
2 13 0 37
20 20 80 70 70 70 420 5 1 5 1 60 90
3

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

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