Problem F
Colliding Traffic

For a boat on a small, constrained body of water, other traffic can be a major hazard. The more traffic there is in the same area, the higher the risk of a collision.

Your job is to monitor traffic and help detect likely collisions before they occur. You have sensors to detect the position, direction, and speed of each boat. Assuming the direction and speed remain constant, your task is to determine whether any of the boats will collide. Two boats are considered to collide if they come within a given distance of each other.


The first line of input contains a single integer $c$, the number of test cases to follow. Each test case starts with a line containing two numbers, $n$, the number of boats, and $r$, the collision distance. Two boats are considered to collide if they come within $r$ metres of each other. There will be no more than 1000 boats. Each boat is identified by a line containing four numbers $x$, $y$, $d$, $s$. The numbers $x$ and $y$ give the current position of the boat as a distance east and north, respectively, from a common origin, and will be between $-1\, 000$ and $1\, 000$, inclusive. The lake is small enough that we can model it as a flat surface. The number $d$ gives the direction in which the boat is heading in degrees clockwise from north (so east is 90 degrees). The number $s$ gives the speed of the boat in metres per second, and will be between $0.001$ and $1\, 000$. Note that $r$, $x$, $y$, $d$, and $s$ are not necessarily integers. The input data will be such that the answer will not change if any of the numbers $x$, $y$, $d$ and $s$ are changed by $10^{-6}$ or less.


For each test case, output a line containing a single integer, the number of seconds, rounded to the nearest second, before any of the boats come within $r$ metres of each other. If none of the boats ever collide, output the line:

No collision.

Sample Input 1 Sample Output 1
2 5
0 0 90 1
10 10 180 1
2 10
0 0 0 0
8 8 270 1
CPU Time limit 3 seconds
Memory limit 1024 MB
Statistics Show
License For educational use only

Please log in to submit a solution to this problem

Log in