走出限区

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

研究人员正在研究病人利用轮椅的效果。病人的轮椅可以改变方向,但只能沿直线前进。病人可以让轮椅停住,然后转动一定角度:只有轮椅停住了才能转,即在前进过程中不能改变方向。为了帮助病人,轮椅上有一个装置,上面有指南针、时钟和速度计。装置每隔一定时间会发出一条指令,提示病人要前进的时间,以及在这段时间内前进的速度和方向。装置上的指南针是标准的指南针,上面用0度表示正北方向,90度表示正东方向,依次类推。
如图1所示有一个限制区域。这个区域是一个200米*400米的矩形。病人从大楼的正门进入区域,正门位于区域的南边界上,且在边界的中心。 

 当病人进入区域时,装置会自动启动,并开始发出指令指示病人的行动。时间是以秒为单位进行计算的,从0到3600;时间是0的时候,病人开始进入区域。装置发出的指令由四个数组成:第一、二个数表示指令执行的初始时间和结束时间;第三个数表示前进的速度;第四个数表示前进的方向(在每一条指令执行过程中轮椅保持不变的速度和方向)。例如,某条指令可以使10.6 15.9 2.8 274,表示在t1=10.6秒和t2=15.9秒的时间段里轮椅以每秒2.8米的速度向274度的方向前进。时间精确到0.1秒,速度精确到0.1米/秒,方向精确到整度数。
你的工作时分析轮椅装置的指令信息。特别地,你要确定出如下信息:
(1)病人是否曾经走出过区域?如果是,确定病人首次离开区域的时间和地点(即轮椅跨出区域的边界位置);如果否,确定出从正门到病人到达的最远点的距离。
(2)病人走过的总距离。
为了回答这些问题,使用这样的坐标:(0,0)表示区域的西南角,(400,200)表示区域的东北角。当装置启动病人进入门时,病人在t=0时间的位置总是(200,0)。病人进入区域将向北前进。

Input

第一行是整数N,表示指令条数。接下来有N行,每行有四个数,表示一条指令。指令按时间先后次序给出。速度的范围是0.0到9.9米/秒。方向范围是0到359,第一条指令的方向总是0。数之间用至少一个空格分隔。
在第一个输入样例中,病人在t=0时进门,开始5秒以3米/秒的速度向正北方前进。从t=7到t=9,病人以2米/秒的速度向北偏东30度的方向前进。然后停下来,转到南偏东30度(即60度)方向,然后以4米/秒的速度前进(从t=10到t=100)。10秒后(t=110),病人向正北方以2米/秒的速度前进,直到t=200。

Output

输出共三行,要给出病人是否离开过区域的信息。如果离开过,则输出“Yes”及离开的地点和时间;如果没有离开过,输出“No”和从正门到病人到达最远点的距离。最后还要输出病人走过的总距离。所有的结果精确到0.1。注意:病人的位置坐标有可能是负的,但你不必担心病人会撞到大楼的墙壁上。
离开过的输出:
Yes
离开点的很坐标 离开点的纵坐标 离开时间
总距离
没离开过的输出:
No
最大距离
总距离

Sample Input

4
0.0 5.0 3.0 0
7.0 9.0 2.0 30
10.0 100.0 4.0 60
110.0 200.0 2.0 0

Sample Output

Yes
400.0 132.8 67.2
559.0

Hint

Source