Tìm vòng tròn (Bellman-Ford)

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài

Bạn được cho một đồ thị có hướng, nhiệm vụ là xác định xem đồ thị có chu trình âm hay không, và nếu có thì đưa ra một ví dụ về chu trình đó.


Input:

Dòng đầu chứa hai số nguyên n và m: số lượng đỉnh và số lượng cung (các đỉnh được đánh số 1,2,...,n).

Tiếp theo có m dòng, mỗi dòng gồm ba số nguyên a, b, c: tồn tại một cung từ đỉnh a đến đỉnh b có độ dài (chi phí) bằng c.


Output:

Nếu đồ thị chứa chu trình âm, in trước dòng "YES", rồi in dãy các đỉnh tạo thành chu trình theo thứ tự đúng (bắt đầu và kết thúc tại cùng một đỉnh). Nếu có nhiều chu trình âm, bạn có thể in bất kỳ chu trình nào.

Nếu không có chu trình âm, in "NO".


Ràng buộc: ~1 \le n \le 2500~

~1 \le m \le 5000~

~1 \le a,b \le n~

~-10^9 \le c \le 10^9~

Ví dụ :

Input:
4 5
1 2 1
2 4 1
3 1 1
4 1 -3
4 3 -2
Output:
YES
1 2 4 1

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.