Трое друзей Аня, Боря и Саша пришли на детскую площадку, чтобы покачаться на качелях-балансире. Качели представляют собой длинную балку, закреплённую в центре, на которую дети садятся с разных концов.
Массы детей равны А, В и С кг. Чтобы держать баланс на качелях, разница масс на двух концах качелей должна быть не более 2 кг. Друзьям повезло: рядом с площадкой оказалась груда достаточно тяжёлых камней. Один из детей может взять с собой любой камень, чтобы сделать разность масс на концах качелей допустимой. Помогите друзьям определить минимальную массу камня, благодаря которому они смогут покачаться на качелях.
Формат входных данных
Программа получает на вход три числа А, В, С, записанных в отдельных строках, массы друзей. В четвёртой строке записано число - наибольшая допустимая разница масс на концах качелей. Все числа целые, положительные и не превосходящие 100.
Формат выходных данных
Программа должна вывести одно целое число минимально необходимую массу камня, которую нужно добавить на одну из сторон качелей, чтобы друзья смогли покачаться на них, сев оптимально. Если камень им не понадобится, программа должна вывести число 0.
Система оценки
Решения, правильно работающие, когда все входные числа не превосходят 105, будут
оцениваться в 10 баллов,
Замечание
В первом примере Аня и Саша сядут на одну сторону, их суммарная масса будет равна 65 кг. На другую сторону сядет Боря, взяв 15-килограммовый камень, тогда масса Бори с камнем составит 55 кг. Разница весов на концах качелей примет значение 10 кг. Во втором примере Аня и Боря сядут на одну сторону (60 кг), Саша на другую сторону (15 кг). Разница весов будет равна 5 кг, поэтому камень не понадобится.
1. **Определим возможные комбинации**: У нас есть три друга с весами А, В и С. Для начала нужно проверить все возможные комбинации, кто может сидеть на одной стороне качелей, а кто на другой.
2. **Вычислим суммарные массы**: Для каждой комбинации будем вычислять суммарные массы на одной стороне и на другой.
3. **Определим разницу масс**: Затем для каждой комбинации проверим, отличается ли масса на двух концах от заданной максимально допустимой разницы.
4. **Вычислим необходимый вес камня**: Если разница превышает допустимую, то нужно будет вычислить, сколько килограммов камня нужно добавить, чтобы разница стала 2 кг или меньше.
5. **Выберем минимальный вес камня**: Из всех вариантов возьмём минимальный вес камня.
Теперь пошагово:
**Входные данные**:
- А, В, С – массы друзей.
- D – максимальная допустимая разница масс (в нашем примере это 2 кг).
**Примеры комбинаций**:
1. Аня (А) и Саша (С) на одной стороне, Боря (В) на другой.
2. Аня (А) и Боря (В) на одной стороне, Саша (С) на другой.
3. Боря (В) и Саша (С) на одной стороне, Аня (А) на другой.
**Формулы**:
- Для первой комбинации: `Сумма_1 = А + С` и `Сумма_2 = В`.
- Разница: `Разница = |Сумма_1 - Сумма_2|`.
**Условия**:
- Если разница ≤ D, то камень не нужен (выводим 0).
- Если разница > D, то необходимый вес камня: `Камень = Разница - D`, если разница - D больше нуля, иначе камень не нужен.
Теперь давайте напишем программу на Python, чтобы это посчитать.
```python
# Вводим массы друзей и максимально допустимую разницу
A = int(input())
B = int(input())
C = int(input())
D = int(input())
# Функция для вычисления минимально необходимого веса камня
def min_stone_mass(A, B, C, D):
# Список для хранения всех необходимых камней
stone_masses = []
# Оценим все комбинации
combos = [
(A + C, B), # Аня и Саша против Боря
(A + B, C), # Аня и Боря против Саша
(B + C, A) # Боря и Саша против Аня
]
for sum1, sum2 in combos:
difference = abs(sum1 - sum2)
if difference > D:
stone_masses.append(difference - D) # Считаем необходимый вес камня
else:
stone_masses.append(0) # Камень не нужен
return min(stone_masses) # Возвращаем минимально необходимый вес
# Вызываем функцию и выводим результат
result = min_stone_mass(A, B, C, D)
print(result)
```
С помощью этой программы мы можем легко найти минимальный вес камня, который поможет друзьям покачаться на качелях без нарушения правил.