[DHBB24 - CNBK - 11] Bài 3: Tính khoảng cách tới s

Xem dạng PDF

Gửi bài giải

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

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Cho đồ thị vô hướng ~G=(V,E)~ gồm ~n~ đỉnh và ~m~ cạnh, các đỉnh được đánh số từ ~1~ tới ~n~ và các cạnh được đánh số từ ~1~ tới ~m~. Độ dài của mỗi cạnh có giá trị là ~1~. Một đồ thị sẽ có ~1~ nút trung tâm ~s~. Với mỗi đỉnh có thể tới được từ đỉnh ~s~, hãy tính khoảng cách ngắn nhất từ đỉnh đó tới ~s~ và in ra các đỉnh theo thứ tự khoảng cách ngắn nhất tăng dần.

Lưu ý: Nếu ~2~ đỉnh có khoảng cách bằng nhau thì nhãn nào nhỏ hơn sẽ đứng trước.

Yêu cầu: Viết chương trình thực hiện yêu cầu trên.

Input

  • Dòng đầu gồm ~3~ số nguyên ~n, m~ và ~s~ (~n, m \le 10^5~, ~1 \le s \le n~);
  • ~m~ dòng sau mỗi dòng gồm hai số ~u, v~ (~1 \le u, v \le n~) thể hiện hai đầu của một cạnh.

Output

  • In ra số dòng tương ứng với số đỉnh có thể tới được từ ~s~ theo thứ tự khoảng cách ngắn nhất tăng dần;
  • Trên mỗi dòng in ra nhãn của đỉnh đó và khoảng cách ngắn nhất của đỉnh đó tới ~s~.

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.