[Beginner Free Contest 28] NEAREST
Xem dạng PDFĐất nước Free Contest xinh đẹp có ~n~ thành phố, đánh số từ ~1~ đến ~n~. Các thành phố được nối với nhau bởi hệ thống giao thông gồm ~m~ tuyến đường hai chiều, mỗi tuyến đường nối trực tiếp một cặp thành phố, đảm bảo luôn có đường đi lại giữa hai thành phố bất kì trong nước (trực tiếp hoặc đi qua một số thành phố khác). Giữa hai thành phố bất kì không có quá một tuyến đường nối trực tiếp.
Có tổng cộng ~b~ kho lương thực được đặt trên khắp cả nước, mỗi kho nằm ở một thành phố khác nhau. Để bảo vệ đất nước khỏi quân xâm lược, thủ tướng đã chọn ra ~r~ thành phố khác nhau để đặt trại quân sự.
Để giải quyết vấn đề lương thực cho các doanh trại, với mỗi thành phố được đặt trại quân sự, nhiệm vụ của bạn là tính toán số tuyến đường ít nhất cần đi nếu xuất phát từ thành phố đó đến một kho lương thực bất kì.
Dữ liệu
Dòng thứ nhất gồm bốn số nguyên: ~n, m, b, r~ (~2 \le n \le 5 \cdot 10^5~; ~1 \le m \le 5 \cdot 10^5~; ~1 \le b, r \le n~).
Dòng thứ hai gồm ~b~ số nguyên là chỉ số của các thành phố được đặt kho lương thực.
Dòng thứ ba gồm ~r~ số nguyên là chỉ số của các thành phố được đặt trại quân sự.
~m~ dòng tiếp theo, mỗi dòng gồm hai số nguyên ~u~ và ~v~ thể hiện có một tuyến đường hai chiều nối trực tiếp hai thành phố ~u~ và ~v~.
Kết quả
- In ra ~r~ số nguyên trên cùng một dòng là kết quả tính được của các thành phố được đặt trại quân sự theo thứ tự của dữ liệu.
Ví dụ
Sample Input
6 6 2 3
3 2
1 5 4
1 2
1 6
3 6
2 3
4 5
3 4
Sample Output
1 2 1
Giải thích
Thành phố ~1~: ~1 \to 2~
Thành phố ~4~: ~4 \to 3~
Thành phố ~5~: ~5 \to 4 \to 3~
Chấm điểm
Subtask 1 (40% số test): ~2 \le n \le 2000, 1 \le m \le 2000~
Subtask 2 (60% số test): Không có ràng buộc gì thêm
Bình luận