Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

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

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

Разумеется, задачи можно решать только на протяжении оставшихся
T
минут. Также будем считать, что если вы начали решать некоторую задачу, вы не можете прерваться до тех пор, пока не решите ее.
4 ответа
Даниил Лумумба Мастер (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) # Выводит максимальное количество баллов
ИванГуру (3066) 13 часов назад
чат гпт
Тайлер Дёрден Мыслитель (9560) 13 часов назад
Соре, но я не спец в данной области
Похожие вопросы