这道题只有jyr一个人会做
题号:NC220884
时间限制:C/C++/Rust/Pascal 10秒,其他语言20秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

科学家小蓝来到了一个荒岛,准备对这个荒岛进行探测考察。

小蓝使用了一个超声定位设备来对自己进行定位。为了使用这个设备,小蓝需要在不同的点分别安装一个固定的发射器和一个固定的接收器。小蓝手中还有一个移动设备。定位设备需要从发射器发射一个信号到移动设备,移动设备收到后马上转发,最后由接收器接收,根据这些设备之间传递的时间差就能计算出移动设备距离发射器和接收器的两个距离,从而实现定位。

小蓝在两个位置已经安装了发射器和接收器,其中发射器安装在坐标(xa, ya),接收器安装在坐标(xb, yb)。小蓝的发射器和接收器可能在岛上,也可能不在岛上。

小蓝的定位设备设计有些缺陷,当发射器到移动设备的距离加上移动设备到接收器的距离之和大于L时,定位设备工作不正常。当和小于等于L时,定位设备工作正常。为了安全,小蓝只在定位设备工作正常的区域探测考察。

已知荒岛是一个三角形,三个顶点的坐标分别为(x1, y1),(x2, y2),(x3, y3)

请计算,小蓝在荒岛上可以探测到的面积有多大?

输入描述:

输入的第一行包含五个整数,分别为xa,ya,xb,yb,L。

第二行包含六个整数,分别为x1,y1,x2,y2,x3,y3。

输出描述:

输出一行,包含一个实数,四舍五入保留2位小数,表示答案。

考虑到计算中的误差,只要你的输出与参考输出相差不超过0.01即可得分。

示例1

输入

复制
10 6 4 12 12
0 2 13 2 13 15

输出

复制
39.99

说明

样例中,椭圆恰好有一半在三角形中。

备注:

对于所有评测用例,保证发射器的两个坐标不同,且所有出现的数值的绝对值都不超过1000。