8570: GRL_1_B : Single Source Shortest Path (Negative Edges)
Description
Input
An edge-weighted graph G (V, E) and the source r.
$|V|\ |E|\ r$
$s_0\ t_0\ d_0$
$s_1\ t_1\ d_1$
$:$
$s_{|E|−1}\ t_{|E|−1}\ d_{|E|−1}$
$|V|$ is the number of vertices and $|E|$ is the number of edges in $G$. The graph vertices are named with the numbers $0, 1,..., |V|−1$ respectively. r is the source of the graph.
$s_i$ and $t_i$ represent source and target vertices of $i$-th edge (directed) and $d_i$ represents the cost of the $i$-th edge.
Output
If the graph contains a negative cycle (a cycle whose sum of edge costs is a negative value) which is reachable from the source $r$, print
NEGATIVE CYCLEin a line.
Otherwise, print
$c_0$
$c_1$
$:$
$c_{|V|−1}$
The output consists of $|V|$ lines. Print the cost of the shortest path from the source r to each vertex 0, 1, ... |V|−1 in order. If there is no path from the source to a vertex, print "INF".
Constraints
$0 ≤ |E| ≤ 2000$
$-10000 ≤ d_i ≤ 10000$
There are no parallel edges
There are no self-loops
Sample 1 Input
4 5 0
0 1 2
0 2 3
1 2 -5
1 3 1
2 3 2
Sample 1 Output
0
2
-3
-1
Sample 2 Input
4 6 0
0 1 2
0 2 3
1 2 -5
1 3 1
2 3 2
3 1 0
Sample 2 Output
NEGATIVE CYCLE
Sample 3 Input
4 5 1
0 1 2
0 2 3
1 2 -5
1 3 1
2 3 2
Sample 3 Output
INF
0
-5
-3