Нижняя пирамида
Вы создаете треугольную пирамиду из листа бумаги для поделок с нанесенной сеткой. Основание и боковые стороны пирамиды имеют треугольную форму. Вы рисуете треугольное основание и три боковые стороны, соединенные с основанием, на бумаге, вырезаете по внешним шести ребрам, сгибаете ребра основания и собираете их в пирамиду.
Вам даны координаты трех вершин основания, и необходимо определить координаты остальных трех вершин. Все вершины должны иметь целочисленные координаты 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.