Найнижча піраміда
Ви будуєте трикутну піраміду з аркуша крафтового паперу, на якому нанесені лінії сітки. Основою та сторонами піраміди є трикутники. Ви малюєте трикутник основи та три прилеглі до нього трикутники на папері, вирізаєте по зовнішніх шести ребрах, згинаєте ребра основи та збираєте їх у піраміду.
Вам надано координати трьох вершин основи, і ви повинні визначити координати інших трьох вершин. Усі вершини повинні мати цілі значення координат X та Y в межах від −100 до +100 включно. Ваша мета — мінімізувати висоту піраміди, дотримуючись цих умов. Рисунок 1 демонструє кілька прикладів.
Рисунок 3: Деякі креслення на крафтовому папері та бокові види зібраних пірамід
Вхідні дані
Вхід складається з кількох наборів даних, кожен з яких має наступний формат:
X_0 Y_0 X_1 Y_1 X_2 Y_2
Це цілі числа в межах від −100 до +100 включно. (X_0, Y_0), (X_1, Y_1), (X_2, Y_2) — це координати трьох вершин трикутної основи, розташованих у проти годинниковій стрілці.
Кінець введення позначається рядком, що містить шість нулів, розділених одним пробілом.
Вихідні дані
Для кожного набору даних виведіть одне число в окремому рядку. Якщо ви можете вибрати три вершини (X_a, Y_a), (X_b, Y_b) та (X_c, Y_c), координати яких є цілі числа в межах від −100 до +100 включно, і трикутники (X_0, Y_0)–(X_1, Y_1)–(X_a, Y_a), (X_1, Y_1)–(X_2, Y_2)–(X_b, Y_b), (X_2, Y_2)–(X_0, Y_0)–(X_c, Y_c) та (X_0, Y_0)–(X_1, Y_1)–(X_2, Y_2) не перекривають один одного (в площині XY), і можуть бути зібрані як трикутна піраміда з позитивною (ненульовою) висотою, виведіть мінімальну висоту серед таких пірамід. Інакше виведіть −1.
Ви можете припустити, що висота, якщо вона позитивна (ненульова), не менша за 0.00001. Вихід не повинен містити помилку більше ніж 0.00001.