Antinomy与爆炸
题号:NC230728
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

橘猫忍要爆炸了!!!!!!!!!!!!!!!
你必须立刻前往Antinomy提供的安全区进行躲避!!!!!!!!!!!!!
橘猫忍一共爆炸  次,且每次都是在二维平面的原点处呈圆形爆炸,每次圆形爆炸的伤害半径 都不同。
在每一次爆炸里,都有一个矩形安全区,安全区可以规避你在圆形爆炸之外的冲击波的伤害,但无法规避在圆形爆炸内的伤害。
Pi想知道每次爆炸的时候,安全区里不安全的面积是多少。
抽象一点来说,对于每一次爆炸,你都需要计算圆形和矩形的重叠面积。


输入描述:

第一行一个整数 —爆炸总次数
接下来的  行里,每行都有5个整数
 
x_1,y_1为安全区矩形的左下角的点,x_2,y_2为矩形右上角的点,为圆心在原点的圆的半径(爆炸半径)

输出描述:

输出行,每行一个浮点数,即重叠的面积。(浮点误差精度为 3 位(1e-3),fabs(stdvalue - yourvalue) / max(1.0, fabs(stdvalue)) < 1e-3均正确)。
示例1

输入

复制
3
1 2 3 4 5
21 45 55 69 100
321 123 654 456 10

输出

复制
4.0000
816.0000
0.0000

备注:

题目中给出的矩形有可能是一条线或一个点,此时它是没有面积的,所以不安全的面积是0
这里给出一些几何常用函数
#include<bits/stdc++.h>//万能头文件
cos余弦函数
sin正弦函数
tan正切函数

acos反余弦函数
asin反正弦函数
atan反正切函数

pow,计算x的y次幂
sqrt,开方、平方根

cosh求x的双曲余弦值
sinh,求x的双曲正弦值
tanh求x的双曲正切值

abs绝对值函数
fabs求浮点数x的绝对值
ceil求不小于x的最小整数