You are deeply disappointed with the real world, so you have decided to live the rest of your life in the world of
MMORPG (Massively Multi-Player Online Role Playing Game). You are no more concerned about the time you
spend in the game: all you need is effciency.
One day, you have to move from one town to another. In this game, some pairs of towns are connected by roads
where players can travel. Various monsters will raid players on roads. However, since you are a high-level player,
they are nothing but the source of experience points. Every road is bi-directional. A path is represented by a
sequence of towns, where consecutive towns are connected by roads.
You are now planning to move to the destination town through the most effcient path. Here, the effciency of a
path is measured by the total experience points you will earn in the path divided by the time needed to travel the
path.
Since your object is moving, not training, you choose only a straightforward path. A path is said straightforward
if, for any two consecutive towns in the path, the latter is closer to the destination than the former. The distance
of two towns is measured by the shortest time needed to move from one town to another.
Write a program to find a path that gives the highest effciency.
The first line contains a single integer c that indicates the number of cases.
The first line of each test case contains two integers n and m that represent the numbers of towns and roads
respectively. The next line contains two integers s and t that denote the starting and destination towns respectively.
Then m lines follow. The i-th line contains four integers ui, vi, ei, and ti, where ui and vi are two towns connected
by the i-th road, ei is the experience points to be earned, and ti is the time needed to pass the road.
Each town is indicated by the town index number from 0 to (n - 1). The starting and destination towns never
coincide. n , m , ei's and ti's are positive and not greater than 1000.
For each case output in a single line, the highest possible efficiency. Print the answer with four decimal digits.
2 3 3 0 2 0 2 240 80 0 1 130 60 1 2 260 60 3 3 0 2 0 2 180 60 0 1 130 60 1 2 260 60
3.2500 3.0000
Migrated from old NTUJ.
No. | Testdata Range | Score |
---|