Автор: | Dmitriy Merzlyakov | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 512 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 100 |
Заказчик выпускает 3-х мерный цилиндр единичного радиуса, на котором отмечены три точки, заданные в цилиндрических координатах (ϕi,zi), i = 1,2,3.
Юному программисту Васе поручено вырезать треугольник из цветной бумаги так, чтобы при наклеивании этого треугольника на цилиндр его вершины совпали с отмеченными точками, и чтобы такой треугольник не был наклеен сам на себя (при этом допускается пересечение по точкам или наличие общих сторон). Помимо этого такой треугольник должен быть невырожденным (иметь ненулевую площадь).
В дальнейшем, из этого цилиндра сделают развёртку путём разрезания цилиндра по любой прямой параллельной оси Z и разворачивания его на плоскость. Заказчик требует, чтобы любая такая прямая сечения пересекала этот треугольник не более 2-х раз.
Вася хочет минимизировать расход бумаги и поэтому собирается написать программу, которая по заданным 3 точкам на цилиндре определит наименьшую возможную площадь треугольника S > 0, который удовлетворяет всем указанным требованиям. Помогите Васе написать такую программу.
В i-ой (i = 1,2,3) строке содержатся числа ϕi,zi – координаты точек на цилиндре. При этом значения углов ϕi указаны в градусах.
Выходной файл содержит одно число S – минимальную возможную площадь треугольника с точностью не менее 5-го знака после запятой. Если такой треугольник построить нельзя – выведите 0.
Все входные значения являются целыми.
− 180 ≤ ϕi ≤ 180,
− 104 ≤ zi ≤ 104.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|