CSES - Nearest Shops | Cửa Hàng Gần Nhất
Xem PDFCó \(n\) thành phố và \(m\) con đường. Mỗi con đường là hai chiều và nối hai thành phố. Biết rằng có \(k\) thành phố có cửa hàng anime.
Nếu bạn sống trong một thành phố, tất nhiên bạn đã biết rõ cửa hàng anime tại chính thành phố đó nếu có. Bạn muốn tìm cửa hàng anime gần nhất không nằm trong thành phố của mình.
Với mỗi thành phố, hãy xác định khoảng cách nhỏ nhất đến một thành phố khác có cửa hàng anime.
Input
Dòng đầu tiên chứa ba số nguyên \(n\), \(m\) và \(k\): số thành phố, số con đường và số cửa hàng anime. Các thành phố được đánh số \(1,2,\dots,n\).
Dòng tiếp theo chứa \(k\) số nguyên: các thành phố có cửa hàng anime.
Cuối cùng có \(m\) dòng mô tả các con đường. Mỗi dòng chứa hai số nguyên \(a\) và \(b\): có một con đường giữa hai thành phố \(a\) và \(b\).
Output
In ra \(n\) số nguyên: với mỗi thành phố, khoảng cách nhỏ nhất đến một thành phố khác có cửa hàng anime. Nếu không có thành phố như vậy, in ra \(-1\).
Constraints
-
\(1 \le k \le n \le 10^5\)
-
\(0 \le m \le 2 \cdot 10^5\)
Example
Test 1
Input
9 6 4
2 4 5 7
1 2
1 3
1 8
2 4
3 4
5 6
Output
1 1 1 1 -1 1 -1 2 -1
Bình luận