Наименьший делитель
Просмотр в формате PDF
Submit solution
Очки:
150
Ограничение по времени:
2.0s
Ограничение по памяти:
256M
Автор:
Problem type
Allowed languages
C++, Python
Инженер анализирует n измеренных норм. Для выбора шага округления d каждая норма a_i преобразуется в число шагов, необходимых для её покрытия: ceil(a_i / d).
После этого считается суммарное число шагов:
S(d) = ceil(a_1 / d) + ceil(a_2 / d) + ... + ceil(a_n / d).
Известно допустимое ограничение K на эту сумму. Требуется подобрать наименьший целый шаг округления d >= 1, при котором суммарное число шагов не превышает лимит, то есть S(d) <= K.
Входные данные
Первая строка содержит два целых числа n и K — количество норм и допустимый лимит.
Вторая строка содержит n целых чисел a_i — значения норм.
Выходные данные
Выведите одно целое число — наименьший подходящий шаг округления d.
Ограничения
1 <= n <= 2 * 10^5n <= K <= 10^181 <= a_i <= 10^9
Примеры
Пример 1
Входные данные
1 1
1
Выходные данные
1
Пример 2
Входные данные
2 2
1 2
Выходные данные
2
Комментарии