Программисты, помогите написать код на python, никак не могу поянть - Общение Python мододелов
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

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

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

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



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

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



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











875a8375f91de049494d6073098e8a2f_010c1baa79f3dd4154e2f65c8fd9068a.jpg

 
Регистрация
31 Авг 2013
Сообщения
85
Репутация
-3
Спасибо
0
Монет
0
В примере дано a=10, b=18 и c=12. Три операции спустя длины сторон окажутся равны 7, 15 и 9 (треугольник можно сложить в последний раз). А вот после четвёртой операции длины палочек составят 6, 14 и 8, и треугольник окажется вырожденным.
 
Регистрация
18 Май 2013
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
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)
 
Сверху Снизу