SP3941 MKTHPATH - Kth Shortest Path
Description
[English](/problems/MKTHPATH/en/) [Vietnamese](/problems/MKTHPATH/vn/) ```
Isaac is tired of his daily trip to his office, using the same shortest route everyday.
Although this saves his time, he must see the same scenery again
and again. He cannot stand such a boring commutation any more.
One day, he decided to improve the situation. He would change his route
everyday at least slightly. His new scheme is as follows. On the first day,
he uses the shortest route. On the second day, he uses the second shortest
route, namely the shortest except one used on the first day. In general,
on the k-th day, the k-th shortest route is chosen. Visiting the same
place twice on a route should be avoided, of course.
You are invited to help Isaac, by writing a program which finds his route
on the k-th day. The problem is easily modeled using terms in the
graph theory. Your program should find the k-th shortest path in the given directed graph.
```
Input Format
```
The input consists of multiple datasets, each in the following format.
n m k a b
x1 y1 d1
x2 y2 d2
…
xm ym dm
Every input item in a dataset is a non-negative integer. Two or more input
items in a line are separated by a space.
n is the number of nodes in the graph. You can assume the inequality 2
```
Output Format
```
For each dataset in the input, one line should be output as specified below.
An output line should not contain extra characters such as spaces.
If the number of distinct paths from a to b is less than k, the string "None"
should be printed. Note that the first letter of None is in uppercase,
while the other letters are in lowercase.
If the number of distinct paths from a to b is k or more, the node numbers
visited in the k-th shortest path should be printed in the visited order,
separated by a hyphen (minus sign). Note that a must be the first,
and b must be the last in the printed line.
In this problem the term shorter (thus shortest also) has a special meaning.
A path P is defined to be shorter than Q, if and only if one of the following
conditions holds.
1. The length of P is less than the length of Q. The length of a path
is defined to be the sum of lengths of edges on the path.
2. The length of P is equal to the length of Q, and P’s sequence of
node numbers comes earlier than Q’s in the dictionary order. Let’s specify
the latter condition more precisely. Denote P’s sequence
of node numbers by
p1, p2, …, ps, and Q’s by q1, q2, …, qt. p1 = q1 = a and ps = qt = b should
be observed. The sequence P comes earlier than Q in the dictionary order,
if for some r (1
```