Помогите пожалуйста решить задачу
(Можно использовать любой из языков: python, c++, c#, pascal, java, go, kotlin, rust, php, кумир)
У Тимофея есть три палочки с натуральными длинами a, b и c, из которых можно сложить треугольник. За одну операцию мальчик отламывает от каждой палочки по кусочку единичной длины. Спустя какое минимальное количество операций из палочек уже нельзя будет сложить треугольник?
Для определённости считайте, что от палочки единичной длины можно отломить кусок длины 1, после чего палочка исчезнет.
Формат входных данных
Три строки входного файла содержат три натуральных числа a, b и c (1≤a,b,c≤109). Гарантируется неравенство треугольника для указанных длин.
Формат выходных данных
Выведите одно натуральное число — ответ на вопрос задачи.
Система оценки
Решения, правильно работающие для равных a, b и c, будут оцениваться в 10 баллов.
Решения, правильно работающие для a, b и c, не превосходящих 105, будут оцениваться в 40 баллов.
Пояснение
В примере дано a=10, b=18 и c=12. Три операции спустя длины сторон окажутся равны 7, 15 и 9 (треугольник можно сложить в последний раз). А вот после четвёртой операции длины палочек составят 6, 14 и 8, и треугольник окажется вырожденным.

a = int(input())
b = int(input())
c = int(input())
a, b, c = min(a, b, c), a + b + c - min(a, b, c) - max(a, b, c), max(a, b, c)
ans = 0
step = 10 ** 9
while step > 1:
while a - ans + b - ans > c - ans:
ans += step
ans -= 2 * step
step //= 10
while a - ans + b - ans > c - ans:
ans += step
print(ans)
a, b, c = int(input()), int(input()), int(input())
print(a + b + c - 2 * max(a, b, c))
Делать циклами то, что вычисляется простейшим выражением на уровне начальной школы - невежество.