Negative cycle detection

Write a program that, given a directed graph with positive and/or
negative costs at the arcs, detects if there is a negative cycle in the
graph.

Input

Input consists of several cases. Every case begins with the number of
vertices n and the number of arcs m. Follow m triples u, v, c,
indicating that there is an arc u → v of cost c, where u ≠ v,
−10⁶ ≤ c ≤ 10⁶. Assume 1 ≤ n ≤ 10⁴, 0 ≤ m ≤ 5n, and that for every pair
of vertices u and v there is at most one arc of the kind u → v. All
numbers are integers. Vertices are numbered from 0 to n − 1.

Output

For every case, print "YES" if there is a negative cycle in the graph,
and "NO" otherwise.

Problem information

Author: Jordi Petit

Generation: 2026-01-25T10:35:31.051Z

© Jutge.org, 2006–2026.
https://jutge.org
