Вопрос Программисты, помогите написать код на python, никак не могу поянть

Регистрация
10 Мар 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
У Тимофея есть три палочки с натуральными длинами ?, ? и ?, из которых можно сложить треугольник. За одну операцию мальчик отламывает от каждой палочки по кусочку единичной длины. Спустя какое минимальное количество операций из палочек уже нельзя будет сложить треугольник?

Для определённости считайте, что от палочки единичной длины можно отломить кусок длины 1, после чего палочка исчезнет.



Формат входных данных

Три строки входного файла содержат три натуральных числа ?, ? и ? (1≤?,?,?≤109). Гарантируется неравенство треугольника для указанных длин.



В примере дано ?=10, ?=18 и ?=12. Три операции спустя длины сторон окажутся равны 7, 15 и 9 (треугольник можно сложить в последний раз). А вот после четвёртой операции длины палочек составят 6, 14 и 8, и треугольник окажется вырожденным.











875a8375f91de049494d6073098e8a2f_010c1baa79f3dd4154e2f65c8fd9068a.jpg

 
В примере дано 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)
 
Назад
Сверху