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

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

Задача

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

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

Три натуральных числа $a, b, c (1 ≤ a, b, c ≤ 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 (Ветвление)

Related Images:

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

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

    • Почему Вы вычленяете из формул числа и набираете их отдельно жирным шрифтом? Это риторический вопрос. Исправьте, пожалуйста.
    • Мне не очень нравятся такие длинные названия разделов с кодом. В ссылках вам удалось высказаться лаконичнее. Но я могу потерпеть.
    • Если использовать логический тип, то стоит применять отрицание, а не отнимать единицу.
    • Такой трюк, как избежать применения ветвления я уже видел. Но, ладно, пусть остается.

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