Gửi bài giải
Điểm:
10,00 (OI)
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
Bài Toán: Tìm đường đi trong đồ thị bằng DFS
Mô tả bài toán:
Cho một đồ thị vô hướng ~G = (V, E)~, trong đó:
- ~V~ là tập hợp ~N~ đỉnh ~(1 ≤ N ≤ 1000)~.
- ~E~ là tập hợp M cặp cạnh ~(1 ≤ M ≤ 10^5)~, mỗi cạnh nối hai đỉnh trong đồ thị.
Hãy tìm một đường đi từ đỉnh ~S~ đến đỉnh ~T~ sử dụng thuật toán DFS (Duyệt theo chiều sâu).
Dữ liệu vào:
- Dòng đầu tiên chứa bốn số nguyên ~N~ ~M~ ~S~ ~T~ (số đỉnh, số cạnh, đỉnh xuất phát, đỉnh kết thúc).
- ~M~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~u~ ~v~ biểu thị có cạnh nối giữa đỉnh ~u~ và ~v~.
Dữ liệu ra:
- Nếu tìm thấy đường đi, in ra danh sách các đỉnh trên đường đi từ ~S~ đến ~T~, ngăn cách bằng dấu "->".
- Nếu không tìm thấy, in
NO
.
Ví dụ:
Input:
6 7 1 6
1 2
1 3
2 4
3 5
4 6
5 6
3 4
Output:
1 -> 3 -> 4 -> 6
Bình luận
quas khos