Mạng máy tính

Xem dạng PDF

Mô 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:

  1. Độ 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~).
  2. 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 nm: 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 ab: 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

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.

Gửi bài giải
Đ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
Kotlin
Pascal
PyPy
Python
Scratch