Cutting with Lines Ⅱ
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

333lfy has n straight lines with infinite length. Now he's going to put them in a 2D plane.

333lfy wants you to select some lines from the given lines to form a convex polygon with the largest area. You just have to tell him the area of this convex polygon.

A convex polygon is a polygon having no internal angles greater than 180 degrees. For example, the polygon in the left picture is a convex polygon, but the polygon in the right picture is not.

输入描述:

The first line of the input contains one integer n  --- The number of the straight lines.

The next n lines each line contains four integers --- A straight line passing through points (x_1, y_1) and (x_2, y_2). It is guaranteed that these two points are different.

It is guaranteed that these straight lines can form  one convex polygon.

输出描述:

Print a real number  ---  the number satisfying the conditions above.

Your answer is acceptable if its absolute or relative error does not exceed . Formally speaking, suppose that your output is x and the jury's answer is y, your output is accepted if and only if .
示例1

输入

复制
4
1 3 3 2
-1 2 0 1
7 5 8 6
1 -1 3 -1

输出

复制
24.5000000000

说明

The test case is shown in the figure: