饥饿的母牛

成绩 0 开启时间 2013年02月21日 星期四 18:02
折扣 0.8 折扣时间 2013年02月28日 星期四 18:02
允许迟交 关闭时间 2013年02月28日 星期四 18:02
输入文件 hungry.in 输出文件 hungry.out

【问题描述

对于去德州圣安东尼奥的旅行,农夫John已经期待很久了,除了将要观看马刺队跟其它NBA队的比赛外,还要去欣赏一下ACM/ICPC(ACM International Collegiate Programming Contest, 国际大学生程序设计竞赛)决赛,然而,还有一个小麻烦:农场上还有一只小母牛,如果他离开的时间太长,小家伙会饿死的。
幸运的是,在他的农舍周围环绕着一大片草地(农舍可以看做一条线段),因此John决定把小母牛拴在农舍前面的一根木桩上,以便它能吃到木桩周围的草。为简便起见,John会保证从木桩到农舍两端的距离相等,下图显示了农舍与木桩的位置关系:

由于John只有一根长度有限的绳子,他想知道牛能吃到草的区域,以便确定他旅行期间牛能否存活,你的任务是写一个程序帮助他。请注意牛不可以穿过农舍。
【输入格式】
输入可能包含若干组数据,第一行是一个整数T(T≤100),即接下来测试数据的个数,每一个测试数据包括3个正整数:L,D,S(L,d,s≤10000),L为农舍这条线段的长度(即上图中线段E1E2的长度),D为木桩到农舍中点的距离(即上图中标记为Pole的点到O点的距离),S表示拴牛的绳子的长度,数据中保证S不超过L与木桩到农舍端点E1的距离和。
【输出格式】

对于每一个测试数据,输出牛能吃到草的区域面积,小数点后保留2位。

【输入样例】
输入文件名:hungry.in
3
2 1 1
2 1 2
2 1 3
输出文件名:hungry.out
3.14
11.23
27.13