Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Решите задачу на питон

Представьте, что вы находитесь на олимпиаде по информатике (знакомое ощущение, правда?), до конца тура осталось всего
T
минут, а у вас еще куча нерешенных задач... Целых
N
штук!

Для каждой задачи известно, сколько баллов вы получите в случае, если решите ее. За решение первой задачи вы получите
a1
баллов, за решение второй задачи —
a2
баллов, и так далее. Так как вы очень долго и упорно готовились к олимпиаде, вы точно знаете, что способны решить любую задачу за
C
минут. Поэтому единственное, что остается сделать, это выбрать, какие задачи нужно решить, чтобы получить как можно больше баллов.

Разумеется, задачи можно решать только на протяжении оставшихся
T
минут. Также будем считать, что если вы начали решать некоторую задачу, вы не можете прерваться до тех пор, пока не решите ее.

По дате
По рейтингу
Аватар пользователя
Мудрец
7мес

Соре, но я не спец в данной области

Аватар пользователя
Оракул
7мес

Без комментариев ((.

Аватар пользователя
Мастер
7мес

арифметика

Аватар пользователя
7мес

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) # Выводит максимальное количество баллов