ОЧЕНЬ СРОЧНО!!! Одно из популярнейших соревнований в IT мире — ICPC World Finals. Это студенческое сорев- нование по спортивному программированию, где команды соревнуются в формате ICPC. В каждой команде есть 3 человека, 1 компьютер и 5 часов чтобы решить 10 − 14 задач. Тут важно не только умение каждого из участников, но и командная работа! Одно из важнейших качеств команды это взаимоуважение. Каждый из трех участников име- ет свой скилл (мастерство) s1, s2, s3. Чтобы в команде было взаимоуважение нужно чтобы все три участника имели одинаковый скилл. Чтобы увеличить скилл участникам можно решать легкие и сложные задачи: решение сложной задачи прибавляет +5 к скиллу, легкой — +1 к скиллу. Отметим, что решение одной задачи увеличивает скилл только одного участника и количество задач неогра- ниченно. Какое наименьшее суммарное количество задач нужно решить участникам команды чтобы достичь взаимоуважения? ​

Приложения:

Ответы

Ответ дал: vladvim
1

Ответ:

Алгоритм решения:

1. Найдем среднее арифметическое скиллов участников: avg = (s1 + s2 + s3) / 3.

2. Если avg является целым числом, то все участники уже имеют одинаковый скилл и задачи решать не нужно. Выводим 0.

3. Иначе, найдем максимальный скилл из трех участников: max_skill = max(s1, s2, s3).

4. Вычисляем количество задач, которое нужно решить максимальному скиллу, чтобы достичь среднего скилла: num_tasks = ceil(avg - max_skill).

5. Вычисляем общее количество задач, которое нужно решить всей команде: total_tasks = num_tasks * 2 + (avg - max_skill - num_tasks).

6. Выводим total_tasks.

Примечание: функция ceil(x) возвращает наименьшее целое число, большее или равное x.

Реализация на Python:

import math

s1, s2, s3 = map(int, input().split())

avg = (s1 + s2 + s3) / 3

if avg.is_integer():

print(0)

else:

max_skill = max(s1, s2, s3)

num_tasks = math.ceil(avg - max_skill)

total_tasks = num_tasks * 2 + (avg - max_skill - num_tasks)

print(math.ceil(total_tasks))

Вас заинтересует