Тип треугольника по сторонам

тема: Геометрия (формулы) · уровень: базовый

Условие

На уроке геометрии учительница раздаёт карточки с тройками чисел — это «длины палочек». Из них хотят сложить треугольник.

Если треугольник можно сложить, надо определить, какой он по сторонам:

Если сложить треугольник нельзя (палочки не сходятся), надо сообщить об этом.

Важно: числа могут быть до 10^9, в языках со 32-битным int это может быть на грани, как на олимпиадах (нужен 64-битный тип). В Python это не проблема.

Формат ввода: Одна строка, три целых числа a, b, c — длины палочек.

Формат вывода: Выведите одно слово:

Ограничения:

Пример Ввод:

2 3 4

Вывод:

SCALENE

Как решать — идея подхода

Приём: Проверка неравенства треугольника + сравнение сторон

Ключевое наблюдение: тип треугольника имеет смысл определять только если треугольник вообще можно сложить. Для этого достаточно «неравенства треугольника»: сумма любых двух сторон должна быть строго больше третьей.

Почему приём работает: если хоть одна сторона не меньше суммы двух других, «палочки» не замкнутся — получится отрезок или разрыв. А если все три суммы строго больше, треугольник существует.

План решения:

Сложность: O(1) по времени и памяти — всего несколько сравнений.

Частая ошибка: использовать нестрогое сравнение в обратную сторону (например, считать, что при a + b == c треугольник существует). Равенство означает «вырожденный» случай, его нужно относить к NONE.

Разберись руками

У тебя три палочки длиной 2, 3 и 4. Сначала нужно понять, вообще можно ли из них замкнуть треугольник. Если можно — решить, есть ли среди длин равные.

Идея: Сначала проверь, что из палочек вообще получается треугольник: сравни самую длинную палочку с суммой двух остальных (и так для всех пар — должна быть строгая «больше»). Если треугольник существует, то по равенствам длин реши: все равны, ровно две равны, или все разные.

Решить задачу с автопроверкой на Python →

Куда дальше