Чтобы решить эту задачу, мы можем рассмотреть все возможные варианты распределения друзей по качелям и оценить, какую массу камня нужно добавить, чтобы разница в массе на концах качелей была не больше D кг.
Пусть массы друзей A, B и C равны:
- A (масса Ани)
- B (масса Бориса)
- C (масса Саши)
Давайте рассмотрим все возможные комбинации, где два друга садятся на одну сторону качелей, а один — на другую. Это позволит нам рассчитать массы на каждой стороне качелей.
Для каждой комбинации мы вычислим необходимую массу камня и проверим, укладывается ли разница в допустимые рамки D кг.
Если не потребуется добавлять камень, мы выведем 0.
Вот код, который реализует описанную логику:
# Вводим массы друзей и допустимую разницу
A = int(input())
B = int(input())
C = int(input())
D = int(input())
# Список для хранения минимально необходимой массы камня
min_stone_weight = float('inf')
# Рассматриваем все сочетания
# 1. Аня и Боря на одной стороне, Саша на другой
mass1 = A + B
mass2 = C
diff1 = mass1 - mass2
if diff1 < 0:
diff1 = -diff1
if diff1 > D:
min_stone_weight = min(min_stone_weight, diff1 - D)
# 2. Аня и Саша на одной стороне, Боря на другой
mass1 = A + C
mass2 = B
diff2 = mass1 - mass2
if diff2 < 0:
diff2 = -diff2
if diff2 > D:
min_stone_weight = min(min_stone_weight, diff2 - D)
# 3. Боря и Саша на одной стороне, Аня на другой
mass1 = B + C
mass2 = A
diff3 = mass1 - mass2
if diff3 < 0:
diff3 = -diff3
if diff3 > D:
min_stone_weight = min(min_stone_weight, diff3 - D)
# Если камень не нужен, то выводим 0
if min_stone_weight == float('inf'):
print(0)
else:
print(min_stone_weight)
Объяснение кода:
- Мы принимаем на вход массы трех друзей и значение D.
- Рассматриваем три возможных сценария:
- Аня и Боря на одной стороне, Саша на другой.
- Аня и Саша на одной стороне, Боря на другой.
- Боря и Саша на одной стороне, Аня на другой.
- Для каждого сценария вычисляем разницу массы и проверяем, нужно ли добавлять камень, чтобы сделать эту разницу допустимой.
- Наконец, выводим минимально необходимую массу камня или 0, если камень не нужен.
Такое решение будет эффективным и выполнится за разумное время даже при максимальных значениях входных данных.
