printРабочее место участника

printЗадачи

1770. Субботник

Ограничения: время – 1s/2s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

В классе учатся `N` человек. Классный руководитель получил указание направить на субботник `R` бригад по `С` человек в каждой.
Все бригады на субботнике будут заниматься переноской бревен. Каждое бревно одновременно несут все члены одной бригады. При этом бревно нести тем удобнее, чем менее различается рост членов этой бригады.
Числом неудобства бригады будем называть разность между ростом самого высокого и ростом самого низкого членов этой бригады (если в бригаде только один человек, то эта разница равна 0). Классный руководитель решил сформировать бригады так, чтобы максимальное из чисел неудобства сформированных бригад было минимально. Помогите ему в этом!
Рассмотрим следующий пример. Пусть в классе 8 человек, рост которых в сантиметрах равен 170, 205, 225, 190, 260, 130, 225, 160, и необходимо сформировать две бригады по три человека в каждой. Тогда одним из вариантов является такой:
1 бригада: люди с ростом 225, 205, 225
2 бригада: люди с ростом 160, 190, 170
При этом число неудобства первой бригады будет равно 20, а число неудобства второй — 30. Максимальное из чисел неудобств будет 30, и это будет наилучший возможный результат.
Сначала вводятся натуральные числа `N`, `R` и `C` — количество человек в классе, количество бригад и количество человек в каждой бригаде (`1\ ≤\ R*C\ ≤\ N\ ≤\ 100 000`). Далее вводятся `N` целых чисел — рост каждого из `N` учеников. Рост ученика — натуральное число, не превышающее `1\ 000\ 000\ 000`.
Выведите одно число — наименьше возможное значение максимального числа неудобства сформированных бригад.

Пример ввода

8 2 3
170 
205 
225 
190 
260 
130 
225 
160

Пример вывода

30
Источник: Московская командная олимпиада школьников по программированию, 2009/10 учебный год
loading