小白兔小灰兔
题号:NC15744
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
Special Judge, 64bit IO Format: %lld

题目描述

老山羊伯伯在地里收白菜,小白兔和小灰兔看见了就一起来帮忙。

他们干了半天,终于干完了。

羊伯伯:小灰兔,这车白菜送给你!

小灰兔:谢谢羊伯伯!

羊伯伯:小白兔,我也送你一车白菜!

小白兔:我不要白菜!给我一包白菜种子吧!

羊伯伯:好!给你~

小白兔:谢谢羊伯伯~

小灰兔把白菜拉到家里之后,就跟大家梦想中的生活一样,躺着啥都不干,吃吃吃,吃了玩~(好想一辈子都这样啊~小灰兔心想。)

小白兔把种子拿回去,打算开始勤劳地种白菜。然而他发现不是所有土地都能用来种白菜,只有被阳光照到的地方可以种白菜。

小白兔生活的星球可以看作二维平面中的一个简单多边形,太阳可以看作一个点。小白兔想知道,这个星球上一共有长度多少的土地可以用来种白菜。

输入描述:

第一行是一个正整数T(≤ 20),表示测试数据组数,

对于每组测试数据,

第一行是一个整数n(3≤ n≤ 10),表示简单多边形的顶点数,

接下来n行,每行是两个整数xi,yi(-10≤ xi,yi≤10),按照逆时针绕向给出简单多边形的n个顶点的坐标,

最后一行是两个整数x,y(-10≤ x,y≤10),表示太阳的坐标,保证太阳在多边形外且不在多边形任意一条边所在直线上。

输出描述:

对于每组测试数据,输出一行,包含一个实数,表示可以用来种白菜的土地的总长度,要求相对误差不超过

也就是说,令输出结果为a,标准答案为b,若满足,则输出结果会被认为是正确答案。

示例1

输入

复制
2
4
0 0
2 0
2 2
0 2
4 1
4
0 0
2 0
2 2
0 2
4 4

输出

复制
2.000000000000
4.000000000000