spoj#NANO. Nanoworld
Nanoworld
You're living in the future, way beyond the singularity and the exhaustion of ipv6, and you want to plan a fastest trip between your own planet and the planet of the your favourite restaurant.
You have a map of one-directional nanobot ferry lines between the planets in your system. The map states the distance dij between each (connected) pair of planets i and j, but due to the rapid technical evolution of this time, you estimate the travel time from i to j is dij/t where t is the time at which you choose to depart from i. (It is impossible to travel at t=0).
Input
The first line contains T the number of test cases.
The first line of each test case contains integers t0, N, M where
- t0 is the time at which you start your trip. 0 ≤ t0 ≤ 109
- N is the number of planets in your system, numbered 0...N-1. 0 < N ≤ 2.5*105
- M is the number of connections between planets. 0 < M ≤ 2.5*105
The following M lines of each test case contain integers i, j, d where
- i is the source planet. 0 ≤ i < N
- j is the destination planet. 0 ≤ j < N
- d is the distance from i to j. 0 ≤ d ≤ 109
Output
The arrival time at planet N-1 when starting at planet 0 at time t0, or "Impossible" (quotes for emphasis) if there is no possible route.
Example
Input: 2 0 5 5 0 2 2 2 3 3 3 4 4 0 1 5 1 4 6 0 2 1 1 1 0
Output: 4.91760625098 Impossible