Даниил Лумумба
Мастер
(2098)
13 часов назад
def max_points(T, N, C, points):
# Сортируем задачи по убыванию баллов
points.sort(reverse=True)
max_score = 0
# Количество задач, которые можно решить за оставшееся время
max_tasks = T // C
for i in range(min(max_tasks, N)):
max_score += points[i]
return max_score
# Пример использования
T = 60 # минуты
N = 5 # количество задач
C = 15 # минуты на задачу
points = [10, 20, 30, 40, 50] # баллы за каждую задачу
result = max_points(T, N, C, points)
print(result) # Выводит максимальное количество баллов
T
минут, а у вас еще куча нерешенных задач... Целых
N
штук!
Для каждой задачи известно, сколько баллов вы получите в случае, если решите ее. За решение первой задачи вы получите
a1
баллов, за решение второй задачи —
a2
баллов, и так далее. Так как вы очень долго и упорно готовились к олимпиаде, вы точно знаете, что способны решить любую задачу за
C
минут. Поэтому единственное, что остается сделать, это выбрать, какие задачи нужно решить, чтобы получить как можно больше баллов.
Разумеется, задачи можно решать только на протяжении оставшихся
T
минут. Также будем считать, что если вы начали решать некоторую задачу, вы не можете прерваться до тех пор, пока не решите ее.