VK Cup 2017 - Round 1
F
Bear and Isomorphic Points
Codeforces
3300
原题
← E→
翻译中…

Bearland is a big square on the plane. It contains all points with coordinates not exceeding $10^{6}$ by the absolute value.

翻译中…

There are $*n*$ houses in Bearland. The $*i*$-th of them is located at the point $(*x*_{*i*}, *y*_{*i*})$. The $*n*$ points are distinct, but some subsets of them may be collinear.

翻译中…

Bear Limak lives in the first house. He wants to destroy his house and build a new one somewhere in Bearland.

翻译中…

Bears don't like big changes. For every three points (houses) $*p*_{*i*}$, $*p*_{*j*}$ and $*p*_{*k*}$, the sign of their cross product $(*p*_{*j*} - *p*_{*i*}) × (*p*_{*k*} - *p*_{*i*})$ should be the same before and after the relocation. If it was negative/positive/zero, it should still be negative/positive/zero respectively. This condition should be satisfied for all triples of indices $(*i*, *j*, *k*)$, possibly equal to each other or different than $1$. Additionally, Limak isn't allowed to build the house at the point where some other house already exists (but it can be the point where his old house was).

翻译中…

In the formula above, we define the difference and the cross product of points $(*a*_{*x*}, *a*_{*y*})$ and $(*b*_{*x*}, *b*_{*y*})$ as:

翻译中…

$(*a*_{*x*}, *a*_{*y*}) - (*b*_{*x*}, *b*_{*y*}) = (*a*_{*x*} - *b*_{*x*}, *a*_{*y*} - *b*_{*y*}),$

翻译中…

$(*a*_{*x*}, *a*_{*y*}) × (*b*_{*x*}, *b*_{*y*}) = *a*_{*x*}·*b*_{*y*} - *a*_{*y*}·*b*_{*x*}.$

翻译中…

Consider a set of possible new placements of Limak's house. Your task is to find the area of that set of points.

翻译中…

Formally, let's say that Limak chooses the new placement randomly (each coordinate is chosen independently uniformly at random from the interval $[ - 10^{6}, 10^{6}]$). Let $*p*$ denote the probability of getting the allowed placement of new house. Let $*S*$ denote the area of Bearland ($*S* = 4·10^{12}$). Your task is to find $*p*·*S*$.

翻译中…

Input

翻译中…

The first line of the input contains an integer $*T*$ ($1 ≤ *T* ≤ 500$) — the number of test cases. The description of the test cases follows.

翻译中…

The first line of the description of a test case contains an integer $*n*$ ($3 ≤ *n* ≤ 200 000$) — the number of houses.

翻译中…

The $*i*$-th of the next $*n*$ lines contains two integers $*x*_{*i*}$ and $*y*_{*i*}$ ($- 10^{6} ≤ *x*_{*i*}, *y*_{*i*} ≤ 10^{6}$) — coordinates of the $*i*$-th house. No two houses are located at the same point in the same test case. Limak lives in the first house.

翻译中…

The sum of $*n*$ won't exceed $200 000$.

翻译中…

Output

翻译中…

Print one real value, denoting the area of the set of points that are possible new placements of Limak's house.

翻译中…

Your answer will be considered correct if its absolute or relative error doesn't exceed $10^{ - 6}$. More precisely, let the jury's answer be $*b*$, and your answer be $*a*$. Then your answer will be accepted if and only if image.

翻译中…

Note

翻译中…

In the sample test, there are $4$ test cases.

翻译中…

In the first test case, there are four houses and Limak's one is in $(5, 3)$. The set of valid new placements form a triangle with vertices in points $(0, 1)$, $(10, 1)$ and $(3, 51)$, without its sides. The area of such a triangle is $250$.

翻译中…

In the second test case, the set of valid new placements form a rectangle of width $50 000$ and height $2 000 000$. Don't forget that the new placement must be inside the big square that represents Bearland.

翻译中…

In the third test case, the three given points are collinear. Each cross product is equal to $0$ and it should be $0$ after the relocation as well. Hence, Limak's new house must lie on the line that goes through the given points. Since it must also be inside the big square, new possible placements are limited to some segment (excluding the two points where the other houses are). The area of any segment is $0$.

翻译中…

样例

Input #1
4
4
5 3
0 1
10 1
3 51
3
-999123 700000
-950000 123456
-950000 987654
3
2 3
10 -1
-4 6
5
1 3
5 2
6 1
4 4
-3 3
Output #1
250.000000000000
100000000000.000000000000
0.000000000000
6.562500000000
InputCopy OutputCopy
题目信息
题号
771F
时间限制
2 s
内存限制
256 MB
标签
计算几何
双指针

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。