Для решения данной задачи мы сначала определим возможные комбинации, как друзья могут сесть на качели, и затем вычислим минимальную массу камня, который нужно добавить, чтобы разница масс не превышала заданное значение \( D \).
Мы можем рассмотреть все возможные пары, на которые могут сесть Аня (A), Боря (B) и Саша (C):
- Аня и Боря на одной стороне, Саша на другой.
- Аня и Саша на одной стороне, Боря на другой.
- Боря и Саша на одной стороне, Аня на другой.
Для каждой комбинации мы будем вычислять разницу масс и проверять, нужна ли дополнительная масса камня.
Вот код, который реализует данный алгоритм на Python:
A = int(input())
B = int(input())
C = int(input())
D = int(input())
# Все возможные комбинации
masses = [
(A + B, C), # Аня и Боря против Саши
(A + C, B), # Аня и Саша против Бориса
(B + C, A) # Боря и Саша против Ани
]
min_stone_weight = float('inf') # Инициализируем минимальный вес камня как бесконечность
for left_mass, right_mass in masses:
difference = left_mass - right_mass
# Если разница уже в допустимых пределах
if abs(difference) <= D:
min_stone_weight = 0 # Камень не нужен
break
# Если камень нужен, найдем его массу
required_stone_weight = abs(difference) - D
if required_stone_weight > 0:
min_stone_weight = min(min_stone_weight, required_stone_weight)
# Выводим результат
print(min_stone_weight)
Объяснение кода:
- Ввод данных: Считываются массы друзей и максимальная допустимая разница.
- Комбинации масс: Формируем всевозможные пары, где два друга сидят на одной стороне качелей, а третий — на другой.
- Перебор комбинаций: Для каждой комбинации вычисляем разницу масс и проверяем, если она не превышает допустимую.
- Подсчет необходимого камня: Если камень нужен, вычисляем его массу. Сравниваем ее с текущим минимальным значением.
- Вывод результата: В конце выводим минимально необходимую массу камня или 0, если он не нужен.
Этот код полностью отвечает условиям задачи и дает требуемый результат.
