Neo đậu tránh bão
Xem dưới dạng PDF
Gửi bài giải
Điểm:
30
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Một quần đảo gồm \(N\) đảo lớn nhỏ và \(M\) luồng gió một chiều giữa chúng. Gió đẩy thuyền có thể giúp giảm năng lượng cần chèo (độ tiêu hao âm).
Hãy giúp thuyền trưởng Tèo xuất phát từ đảo nguồn \(S\) phát hiện xem có chu trình gió thuận lợi nào giúp tăng năng lượng vô hạn (chu trình âm) đạt tới được từ \(S\) hay không. Nếu có, hãy in ra danh sách các đảo trên chu trình đó theo đúng thứ tự vòng tròn để thuyền trưởng neo đậu.
Định dạng đầu vào
- Dòng đầu chứa ba số nguyên \(N\), \(M\), \(S\) (\(1 \le N \le 1000\), \(0 \le M \le 2000\), \(1 \le S \le N\)).
- \(M\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(u\), \(v\), \(w\) (\(1 \le u, v \le N\), \(-1000 \le w \le 1000\)).
Định dạng đầu ra
- Nếu không có chu trình âm nào đạt tới được từ \(S\), in ra
NOở dòng duy nhất. - Ngược lại:
- Dòng 1:
YES - Dòng 2: Số lượng đảo \(K\) thuộc chu trình âm được tìm thấy.
- Dòng 3: Dãy \(K\) số nguyên là thứ tự các đảo trên chu trình.
- Dòng 1:
Ràng buộc
- Subtask 1 (40% số điểm): \(N \le 100\), \(M \le 200\).
- Subtask 2 (60% số điểm): Không có ràng buộc gì thêm.
Ví dụ
Input:
3 3 1
1 2 2
2 3 3
3 1 -6
Output:
YES
3
1 2 3
Giải thích: Chu trình âm \(1 \to 2 \to 3 \to 1\) có tổng chi phí là \(2 + 3 - 6 = -1 < 0\) và đi qua các đảo theo thứ tự \(1 \to 2 \to 3\).
Nhận xét