n, k = map(int, input("Введите количество сборов и участников в команде: ").split())
a = list(map(int, input(f"Введите максимальное количество участников на каждом из {n} сборов: ").split()))
left, right = 0, max(a)
while left < right:
mid = (left + right + 1) // 2
total_participants = sum(min(ai, mid) for ai in a)
if total_participants >= k * mid:
left = mid
else:
right = mid - 1
print(f"Максимальная сила команды: {left}")
k
. В связи с этим у университета города X возникла необходимость подготовки команды для участия в новом виде соревнований.
Конечно же, сразу появились сборы по подготовке к новому виду контестов. Всего есть
n сборов, на i -е сборы университет X может отправить не более a i участников. Сила участника определяется как число сборов, которые он посетил. Сила команды определяется как минимум из сил всех её участников.
Помогите университету X и скажите, какую максимальную силу команды возможно достичь.
Пример 1
Входные данные
3 4
1 1 1
Выходные данные
0
Пример 2
Входные данные
3 2
2 1 3
Выходные данные
2