Mạng máy tính
Xem dạng PDFMô tả bài toán: Mạng máy tính
Mạng của Syrjälä có n máy tính và m kết nối. Nhiệm vụ của bạn là xác định xem Uolevi có thể gửi một tin nhắn tới Maija hay không, và nếu có, hãy tìm ra số lượng máy tính tối thiểu trên đường đi đó.
Bạn cần tìm ra:
- Độ dài đường đi ngắn nhất từ máy tính của Uolevi (máy tính 1) tới máy tính của Maija (máy tính ~n~).
- Một ví dụ của đường đi ngắn nhất (nếu có).
Input:
- Dòng đầu tiên chứa hai số nguyên n và m: số lượng máy tính và số lượng kết nối.
- Sau đó có m dòng, mỗi dòng chứa hai số nguyên a và b: biểu diễn một kết nối giữa hai máy tính ~a~ và ~b~.
Output:
- Nếu có thể gửi tin nhắn, in ra một số nguyên ~k~: số lượng máy tính trên đường đi ngắn nhất.
- Sau đó, in ra ~k~ số nguyên biểu diễn đường đi đó.
- Nếu không có đường đi, in
"IMPOSSIBLE"
.
Ràng buộc:
- ~2 \leq n \leq 10^5~
- ~1 \leq m \leq 2 \cdot 10^5~
- ~1 \leq a, b \leq n~
Ví dụ:
Input:
5 5
1 2
1 3
1 4
2 3
5 4
Output:
3
1 4 5
Giải thích:
- Mạng máy tính có 5 máy tính và 5 kết nối.
- Máy tính của Uolevi là 1, và máy tính của Maija là 5.
- Đường đi ngắn nhất từ 1 tới 5 là: ~1 \rightarrow 4 \rightarrow 5~, với tổng số máy tính trên đường đi là 3.
Bình luận
Gửi bài giải
Kotlin
PyPy
Điểm:
10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Nguồn bài:
CSES
Dạng bài
CSES
Ngôn ngữ cho phép
C
C++
Java
Pascal
Python
Scratch