Две противоположные вершины прямоугольного параллелепипеда A с рёбрами, параллельными осям координат, имеют координаты (0,0,0) и (u,v,w) соответственно (0 < u < 1000, 0 < v < 1000, 0 < w < 1000).
Множество S из n точек задается тройками координат (x(i), y(i), z(i)), 1 ≤ i ≤ n ≤ 50, при этом ни одна пара точек из S не лежит на прямой, параллельной какой-либо грани A.
Найти такой прямоугольный параллелепипед G максимального объёма, что все его ребра параллельны ребрам A, G полностью лежит в A (G и A могут иметь общие граничные точки) и ни одна точка из S не лежит внутри G (но может лежать на его границе).
Исходные данные
В 1-й строке находятся числа u, v, w, разделённые одним пробелом. Во 2-й строке - целое число n, в 3-й, …, (n+2)-й строках - числа x(i), y(i), z(i), разделённые одним пробелом.
Все координаты лежат в пределах от 0 до 1000 и записаны не более чем с двумя десятичными знаками после десятичной точки.
Результат
Программа должна выдавать единственное число – величину объёма G с двумя десятичными знаками. В случае, если истинный объём параллелепипеда G содержит больше двух десятичных знаков, следует произвести округление до двух знаков по обычным математическим правилам.
Пример
исходные данные | результат |
---|
1.0 1.0 1.0
1
0.5 0.5 0.5 | 0.50 |
Источник задачи: II Командный студенческий чемпионат Урала по программированию. Екатеринбург, 3-4 апреля 1998 г.