Задача C. Автобусы

Автор:И. Блинов   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  
Максимальный балл:100  

Условие

Перевозка пассажиров происходит по следующему алгоритму: автобус приходит на вокзал и ожидает пассажиров, пока они не займут все M мест. Новый автобус приходит на вокзал каждые d минут, первый автобус приезжает в момент времени 0. Время ожидания пассажира  — это время, пока он стоит на остановке (если автобус стоит на остановке, а пассажир находится в нём, это не считается за ожидание).

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

Вам точно известно количество пассажиров N, и для каждого из них момент времени ti, когда пассажир приходит на вокзал. Перевозчик считает, что увеличение интервала между автобусами позволит уменьшить необходимое количество автобусов. Поэтому вам требуется выбрать максимально большой интервал между автобусами так, чтобы суммарное время ожидания для всех пассажиров не превышало T минут.

Формат входных данных

Первая строка входного файла содержит три целых числа N, M и T. Следующая строка содержит N целых чисел ti. Гарантируется, что первый автобус не может забрать всех пассажиров.

Формат выходных данных

Выходной файл должен содержать одно целое число  — максимальный возможный интервал.

Ограничения

0 ≤ N, M ≤ 106; 1 ≤ ti ≤ 106; 1 ≤ T ≤ 109

Описание подзадач и системы оценивания

Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи успешно пройдены.

Подзадача Баллы Дополнительные ограничения
NMtiT
1501 ≤ N ≤ 1031 ≤ M ≤ 1031 ≤ ti ≤ 1031 ≤ T ≤ 103
1501 ≤ N ≤ 1061 ≤ M ≤ 1061 ≤ ti ≤ 1061 ≤ T ≤ 109

Примеры тестов

Стандартный вход Стандартный выход
1
5 3 3
5 4 3 2 1

6
2
6 3 6
6 6 6 6 6 6
8

0.191s 0.014s 13