Задача B. Треугольная рамка

Автор:Седьмая Всероссийская Командная олимпиада школьников по программированию   Ограничение времени:2 сек
Входной файл:frame.in   Ограничение памяти:64 Мб
Выходной файл:frame.out  

Условие

Картины художников-абстракционистов весьма необычны. На них часто изображены абсолютно непонятные предметы. Один известный художник-абстракционист решил добавить своим картинам оригинальности следующим способом. Вместо прямоугольных рамок, в которые обычно вставляются картины, он решил на ближайшей выставке использовать треугольные.

Однако все оказалось совсем не так просто. Художник изготовил рамку, поместил в нее картину и понял, что что-то не так. Рамка получилась слишком широкой, и картина выглядела совсем не так ярко, как он ожидал.

Немного поразмыслив, художник понял, что то, насколько рамка "подходит" для картины, определяется площадью рамки. Кроме этого он понял, что рамки надо не изготавливать самостоятельно, а покупать в специальном магазине. Заглянув в прайс-лист магазина, он увидел, что для каждой рамки в нем указаны длины внешних сторон и ширина.

Поясним подробнее то, как выглядит треугольная рамка. Ее изготовление происходит следующим образом: берется доска из красного дерева, имеющая форму треугольника со сторонами a, b и c. После этого стороны этого треугольника мысленно сдвигаются внутрь него на расстояние d (измеряемое по перпендикуляру к соответствующей стороне). На точках пересечения "сдвинутых" сторон строится маленький треугольник, который затем вырезается из исходного. Пример рамки со сторонами a = 6, b = 8, c = 10 и шириной d = 1 показан на рисунке.

Помогите художнику по имеющимся в прайс-листе данным вычислить площадь рамки.

Формат входного файла

Входной файл содержит четыре целых числа a, b, c, d - длины внешних сторон рамки и ее ширину, соответственно. Гарантируется, что треугольник со сторонами a, b и c. существует, и что в треугольнике есть точка, расстояние от которой до ближайшей стороны строго больше d.

Формат выходного файла

В выходной файл выведите площадь рамки с точностью не меньше 10 − 5.

Ограничения

1 ≤ a, b, c, d ≤ 1000

Примеры тестов

Входной файл (frame.in) Выходной файл (frame.out)
1
6 8 10 1
18.00000

0.083s 0.010s 15