Top.Mail.Ru
Ответы

Прошу решить задачу на Python.Заранее спасибо

Недавно были анонсированы уникальные командные соревнования по олимпиадному программированию. Уникальность их состоит в числе участников одной команды - их должно быть ровно k . В связи с этим у университета города X возникла необходимость подготовки команды для участия в новом виде соревнований.
Конечно же, сразу появились сборы по подготовке к новому виду контестов. Всего есть n сборов, на i -е сборы университет X может отправить не более a i участников. Сила участника определяется как число сборов, которые он посетил. Сила команды определяется как минимум из сил всех её участников.
Помогите университету X и скажите, какую максимальную силу команды возможно достичь.
Выведите одно целое число — максимально возможную силу команды.
Пример 1
Входные данные

3 4
1 1 1
Выходные данные

0
Пример 2
Входные данные

3 2
2 1 3
Выходные данные

2

По дате
По Рейтингу
Аватар пользователя
Просветленный
7мес
12345678910111213141516171819202122232425262728
 def max_team_strength(n, k, a): 
    """ 
    Находит максимальную возможную силу команды. 
 
    Args: 
        n: Количество сборов. 
        k: Размер команды. 
        a: Список максимального количества участников на каждом сборе. 
 
    Returns: 
        Максимальная возможная сила команды. 
    """ 
 
    for strength in range(n, -1, -1):  # Перебираем силу от n до 0 
        total_participants = 0 
        for i in range(strength, n):  # Считаем участников, посетивших не менее strength сборов 
            total_participants += a[i] 
        if total_participants >= k:  # Если можно собрать команду с такой силой 
            return strength 
 
    return 0  # Если не получилось собрать команду с силой больше 0 
 
# Считываем ввод 
n, k = map(int, input().split()) 
a = list(map(int, input().split())) 
 
# Выводим результат 
print(max_team_strength(n, k, a))