Landing Navigation

Landing a plane is a difficult operation. Modern planes include landing aids, in which a computer indicates, based on analysis of a number of variables, whether it is safe to attempt landing and, if so, how best to proceed. In this problem we will program a simplified landing aid. We assume the pilot engages this aid when the plane is in a specific position relative to the landing strip: That is, when the plane is exactly at a height of one kilometer, and 20 kilometers away from the landing strip, the pilot starts the landing procedure and engages our landing aid. As shown in the picture, the plane is descending at an angle P hi, measured counterclockwise from ground; furthermore, we consider the horizontal x direction to be positive in the direction towards the landing strip, and the vertical y direction to be positive downwards towards the ground. We also assume the plane velocity to be always 200Km/h in the direction from the plane straight towards the landing strip. The vertical and horizontal (scalar) speeds may vary, but the velocity will always be 200Km/h. When our landing aid is first engaged, it will inform the pilot the following: a) the current time into the descent is zero; b) condition is ‘GO’ (meaning landing may proceed); c) what descent angle Phi should the plane be set to; d) the remaining flight time; and e) the current horizontal and vertical speeds. Under static conditions this would be all that is needed to safely land the plane. However, wind bursts may affect the plane’s position and velocity during the descent. We assume bursts only occur in the x or y directions, but they may have positive or negative speed. The burst velocity is added to the plane’s. The changes introduced by the burst will affect the plane velocity and the angle P hi needed to reach the landing strip. However, to have a safe landing we need to meet the following two conditions: • the descent angle Phi must be equal to or greater than 1 degree, and equal to or less than 4 degrees • the plane speed in the y direction must be less than 4 meters per second The plane has a burst detector, which indicates to our landing aid the direction and speed of the burst. We assume it is too risky for the pilot to make course changes during a burst, so our landing aid will behave as follows: • It will indicate to the pilot that a burst has started, as well as current time into the descent

2/4 • Every five seconds, it will calculate the new angle Phi and plane velocity required to land, and will determine if a safe landing would still be possible if the burst ended at that exact moment. If safe landing is still possible, it will give the pilot a ‘GO’ signal. Otherwise, it will give an ‘ABORT’ signal. • At the end of the burst, it will indicate the pilot that the burst has ended, a ‘GO’ or ‘ABORT’ signal, and in case of a ‘GO’ signal, the new flight conditions. Input Your program must read test cases from the standard input. Each test case has one or more lines. Each line has four numbers separated by spaces. The first number is the time into the flight (in seconds) when a burst starts. The second is the time when the burst stops. The third number is equal to 0 if the wind moves in the x direction and different than 0 if the wind moves in the y direction. The fourth and final number is the burst speed in Km/h; it may be positive or negative. Test cases are separated by lines where the first number is ‘0’. There may or may not be any number of such lines at the start, middle or end of the file. It may be assumed that bursts always occur in isolation and never coincide in time. Bursts have duration of at least one second. When ‘ABORT’ conditions are set, the rest of the test case must be ignored, since the plane has interrupted the landing. There will always be at least one burst per test case, and one test case per input file. As an example, consider the Sample Input below. This file defines two test cases. In the first, there is a wind burst along the x direction that starts 50 seconds into the descent and lasts two seconds. Wind speed is 10km/h; the burst is pushing the plane towards the landing strip. The second test case has two bursts. The first burst starts 100 seconds into the flight and lasts 7 seconds, and moves in the x direction at 10km/h. The second burst occurs 150 seconds into the flight, moves along the y direction, and has negative speed (that is, it pushes the plane upwards). Times and speeds are not restricted to be integers and could be fractional. Output Let us analyze the program’s output at Sample Output below. Test cases are separated by lines ‘---Start of test case---’ and ‘---End of test case---’. At the start of each test case, the landing aid outputs the following information: TIME = 0.00, GO RTIME = 360.45 ANGLE = 2.86 VX = 55.49 VY = 2.77 The current time (0.00) and a ‘GO’ signal Remaining flight time if conditions don’t change Angle of descent that pilot must set, in degrees Speed along x axis in m/s Speed along y axis in m/s (Note that the last four lines are indented by two spaces, and all numbers are printed with two decimal figures). When a burst is detected, the pilot is informed of this, along with the current flight time in seconds, with a line as follows: BURST START AT TIME = 100.00 Then, every five seconds a ‘GO’ or ‘ABORT’ signal is given, along with the current flight time: TIME = 105.00, GO TIME = 110.00, GO TIME = 115.00, GO The pilot is informed of the end of the burst, along with the time, and if conditions are good, a ‘GO’ signal and new flight information:

3/4 BURST END AT TIME = 117.00 TIME = 117.00, GO RTIME = 239.21 ANGLE = 2.91 VX = 55.49 VY = 2.82 Burst end is indicated, with time ‘GO’ signal is given (if appropriate) Updated flight information is provided In case the landing cannot be completed safely, an ‘ABORT’ signal is given and the test case ends immediately: BURST START AT TIME = 150.00 TIME = 155.00, GO TIME = 160.00, GO TIME = 165.00, ABORT ---End of test case--- Sample Input 50 52 0 10 0000 100 117 0 50 150 170 1 -60 Sample Output ---Start of test case--- TIME = 0.00, GO RTIME = 360.45 ANGLE = 2.86 VX = 55.49 VY = 2.77 BURST START AT TIME = 50.00 BURST END AT TIME = 52.00 TIME = 52.00, GO RTIME = 308.35 ANGLE = 2.86 VX = 55.49 VY = 2.78 ---End of test case--- ---Start of test case--- TIME = 0.00, GO RTIME = 360.45 ANGLE = 2.86 VX = 55.49 VY = 2.77 BURST START AT TIME = 100.00 TIME = 105.00, GO TIME = 110.00, GO TIME = 115.00, GO BURST END AT TIME = 117.00 When ‘ABORT’ is given, test case ends

4/4 TIME = 117.00, GO RTIME = 239.21 ANGLE = 2.91 VX = 55.48 VY = 2.82 BURST START AT TIME = 150.00 TIME = 155.00, GO TIME = 160.00, GO TIME = 165.00, ABORT ---End of test case---