Problem C
Nice Path
Languages
en
sv
When I go home, I don’t always choose the shortest path, but rather a path that
-
always takes me closer to my home, and
-
is ”nicest”, in the sense that the average ”niceness factor” of the path segments I pass is as high as possible.
Write a program that computes the maximum such average.
The map of my city can be described by $n$ places numbered from $1$ to $n$. Place $1$ is where I start, and place $n$ is my home. All places are sorted by the distance to my home, so a place with a higher number is always closer to my home than one with a lower number.
Furthermore, there are $m$ different path segments that each lead from one place $u_ i$ to another place $v_ i$ and has a niceness factor of $w_ i$. The niceness factor could depend on for example whether the path segment contains some rare trees, a cute cat sitting in a window or some other nice thing. Since I always want to go home, the description only includes path segments where $u_ i < v_ i$.
If you are mathematically inclined, we might call this a directed, weighted, acyclic graph.
Input
The first line consists of the integers $n$ and $m$ ($2 \leq n \leq 10^5$, $1 \leq m \leq 2\cdot 10^5$), the number of places and the number of path segments.
Each of the following $m$ lines describe a path segment and consists of the three integers $u_ i$, $v_ i$ and $w_ i$ ($1 \leq u_ i < v_ i \leq n$, $1 \le w_ i \le 2\cdot 10^6$), which means that a path segment goes from place $u_ i$ to place $v_ i$ with a niceness factor of $w_ i$.
There will never be more than one path segment connecting two places, and it’s guaranteed that it’s possible to get from place $1$ to place $n$.
Output
Output a single number: the highest possible average niceness factor on a path from place $1$ to place $n$. Your answer will be considered correct if its relative or absolute error is at most $10^{-6}$.
Scoring
Your solution will be tested on a set of test groups, each worth a number of points. To get the points for a test group you need to solve all test cases in the test group.
Group |
Points |
Constraints |
$1$ |
$21$ |
$2 \le n \le 10$, $1 \le m \le 20$ |
$2$ |
$41$ |
$2 \le n \le 1000$, $1 \le m \le 2000$ |
$3$ |
$28$ |
No additional constraints. |
Sample Input 1 | Sample Output 1 |
---|---|
3 3 1 2 20 2 3 17 1 3 18 |
18.5000000000 |
Sample Input 2 | Sample Output 2 |
---|---|
5 6 1 2 20 2 3 17 1 3 18 4 5 19 3 5 23 2 4 22 |
20.5000000000 |