e-olymp 8372. Составить треугольник

Задача взята с сайта e-olymp

Задача

По заданным длинам трех отрезков определить, можно ли из них составить невырожденный треугольник. Треугольник называется невырожденным, если его площадь больше 0.

Входные данные

Три натуральных числа abc (1 ≤ abc ≤ 1000) — длины трех отрезков.

Выходные данные

Вывести YES если из отрезков можно составить невырожденный треугольник и NO в противном случае.

Тесты

# ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ
1 5 6 7 YES
2 3 7 4 NO
3 16 24 32 YES
4 54 1 100 NO
5 1 1 1 YES

Код программы (с использованием тернарной операции)

Код программы (без использования ветвления)

Решение задачи

Пусть $a$, $b$, $c$ – длины трех отрезков. Из них можно составить невырожденный треугольник, если длина каждых двух отрезков больше длины третьего (это условие известно как неравенство треугольника): | $b$ | < | $a$ | + | $c$ | \begin{cases} b + c > a\\a + c > b\\a + b > c\end{cases}

Ссылки

Условие задачи на e-olymp

Код программы на ideone (Линейные вычисления)

Код программы на ideone (Ветвление)

5 thoughts on “e-olymp 8372. Составить треугольник

  1. Я зачту это за алгоритмы с ветвлением, но второй код лучше убрать. Мы ведь обсуждали, когда нужно делать ветвление условным оператором, а когда тернарной операцией?
    И, пожалуйста, уберите кириллицу из постоянной ссылки (адреса) Вашей записи.
    Тогда останется только отыскать трюк с помощью которого удастся решить задачу без использования ветвления.

Добавить комментарий