Problem3144--投影面积 [light](day2-3)

3144: 投影面积 [light](day2-3)

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 0  Solved: 0
[Status] [Submit] [Creator:]

Description

【故事背景】
JYY 的实验室总是被那些新来的小盆友堆满了乱七八糟的东西。每次 JYY要用投影仪做展示的时候,总是需要移开很多的障碍物。有一天,JYY 开投影的时候,忘记先把障碍物移开了。这时他突然发现,有很多障碍物居然是反光的。光线经过反射,照亮了投影屏幕的不同的区域。
JYY 想知道,屏幕上到底有多少区域被光线照亮了呢?
【问题描述】
为了简单起见,投影屏幕对应二维平面中的一条平行于x轴,连接点(x1^s ,y^s )和点(x2^s ,y^s )的线段。
JYY 的投影仪位于原点,朝向y轴正方向,发出对称于y轴并且张角度数为ang的光束。如图所示(粗线条为投影屏幕,黄色区域为投影仪射出的光束)。

实验室内一共有 N 个障碍物,每个障碍物都对应于二维平面中的一条线段(我们认为这些障碍物的厚度为 0)。
有一些障碍物是不能反光的,因此光线只要射到这些线段上,就会被完全吸收(比如投影屏幕就是不会反光的);其他的障碍物则是双面可以反光的,光线如果射到这些线段上,就会按照基本光学原理进行反射。
所有的障碍物都 相互不接触 ,并且也不会与投影屏幕,或者坐标原点接触。
光线在空气中传播会有损耗。因此在 JYY 的实验室中,光线在传播了len的距离之后,就会 消失 。
现在 JYY 想知道,投影屏幕上被照亮的区域,占投影屏幕总长度的比率。



Input

第一行包含一个整数与两个正实数,分别为 N,ang,len。
接下来 N 行,每行 5 个整数,x1,y1 ,x2 ,y2 ,r,表示 JYY 的实验室里存在一个连接点(x1,y1 )和点 (x2,y2 ) 的障碍物。r为 0 或者 1。当r = 0时,表示这个障碍物不反光;当r= 1时,表示这个障碍物是完全双面反光的。
接下来一行,包含四个整数,x1^s ,y^s ,x2^s ,y^s,表示投影屏幕的位置。这一行的第二个和第四个整数一定是相同的。
输入数据保证y^s> 0,x1^s< x2^s ,并且对于任意障碍物,满足 |y2|< y^s 。
输入数据还保证,对于一条光线,在其消失或者被吸收之前,至多折射 30次。

Output

输出一行包含一个 0 到 1 之间的实数,表示屏幕上被照亮部分的长度与屏幕总长的比值。 结果精确到小数点后 4 位 。

Sample Input Copy

0 90 100
-20 10 20 10

Sample Output Copy

0.5000

HINT

【样例说明】
第三个样例如图所示。

【数据规模】
对于 20%的数据满足N = 0。
对于另外 20%的数据,任意障碍物均满足r= 0;
对于另外 20%的数据满足N = 2,并且仅有一个障碍物满足r = 1;
对于 100%的数据满足0 ≤N≤ 10,0 < ang ≤ 150,0 < len ≤ 1000,并且任意输入坐标的绝对值不超过 1000。


Source/Category