e-olymp 932. Высота треугольника

Задача

Определить высоту треугольника площадью [latex]S[/latex], если его основание больше высоты на величину [latex]a[/latex].

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

Два целых числа [latex]S[/latex] [latex](0 < S \leqslant 100)[/latex] и [latex]a[/latex] [latex](|a| \leqslant 100)[/latex].

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

Вывести высоту треугольника с точностью до сотых.

Тесты

# Входные данные Выходные данные
1 20 7 3.73
2 35 3 7.00
3 12 4 3.29
4 67 9 7.92
5 135 13 11.17

Код программы

Решение

Для решения задачи нам понадобится формула для нахождения площади треугольника: [latex]S = \frac{1}{2} \cdot h \cdot c[/latex], где [latex]h[/latex] — высота, [latex]c[/latex] — сторона, к которой высота проведена. Вместо [latex]c[/latex] подставим [latex]h+a[/latex] (по условию задачи). Далее приходим к квадратному уравнению [latex]h^2 + a \cdot h — 2 \cdot S = 0[/latex]. Решив его, получим два корня. Второй корень нам не подходит, поскольку он меньше [latex]0[/latex], а длина не может быть отрицательной. Первый корень и будет ответом нашей задачи.

Ссылки

Ссылка на e-olymp

Ссылка на ideone