Якірна куля
Куля, що лежить на землі, прикріплена до одного або кількох якорів за допомогою мотузок. Кожна мотузка достатньо довга, щоб з'єднати кулю з якорем. Жодні дві мотузки не перетинаються. Рисунок 1 ілюструє цю ситуацію.
Рисунок 1: Куля та мотузки на землі
Куля починає підніматися, і ваше завдання - визначити, наскільки високо вона може піднятися, залишаючись прикріпленою мотузками. Позиції якорів залишаються незмінними. Довжини мотузок та координати якорів відомі. Ви можете вважати, що мотузки не мають ваги і можуть бути натягнуті в будь-якому напрямку. Рисунок 2 показує максимальну висоту кулі для ситуації з Рисунку 1.
Рисунок 2: Найвища позиція кулі
Вхідні дані
Вхідні дані складаються з кількох наборів, кожен з яких має наступний формат.
n
x_1 y_1 l_1
...
x_n y_n l_n
Перша строка кожного набору містить ціле число n (1 ≤ n ≤ 10), що вказує на кількість мотузок. Кожна з наступних n строк містить три цілі числа: x_i, y_i, та l_i, розділені пробілом. P_i = (x_i, y_i) визначає позицію якоря для i-тої мотузки, а l_i - довжину цієї мотузки. Ви можете вважати, що −100 ≤ x_i ≤ 100, −100 ≤ y_i ≤ 100, та 1 ≤ l_i ≤ 300. Куля спочатку знаходиться в точці (0, 0) на землі. Розміри кулі та якорів можна ігнорувати.
Ви можете вважати, що P_i та P_j - це різні позиції, якщо i ≠ j. Також можна припустити, що відстань між P_i та (0, 0) не перевищує l_i−1. Це означає, що куля може піднятися щонайменше на 1 одиницю висоти.
Рисунки 1 та 2 відповідають першому набору даних з прикладу введення нижче.
Кінець введення позначається рядком, що містить нуль.
Вихідні дані
Для кожного набору даних виведіть один рядок з максимальною висотою, на яку може піднятися куля. Похибка значення не повинна перевищувати 0.00001. У виході не повинно бути жодних зайвих символів.