Наименьший делитель

Просмотр в формате 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^5
  • n <= K <= 10^18
  • 1 <= a_i <= 10^9

Примеры

Пример 1

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

1 1
1

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

1
Пример 2

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

2 2
1 2

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

2

Комментарии

Еще нет ни одного комментария.