Đất nước Ukraine 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 giữa hai thành phố bất kì trong nước (trực tiếp hoặc gián tiếp qua các thành phố khác). Giữa hai thành phố bất kì không có quá một tuyến đường 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. Để giữ đất nước khỏi quân xâm lược, Thủ tướng Ukraine Denys Shmyhal đã chọn ra ~r~ thành phố khác nhau để đặt trại quân sự.
Yêu cầu:
Để giải quyết vấn đề lương thực cho quân độ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:
Tệp tin đầu vào Gannhat.inp
gồm:
- Dòng thứ nhất gồm bốn số nguyên:
~n, m, b, r~ (~2 \leq n \leq 5 \times 10^5; 1 \leq m \leq 5 \times 10^5; 1 \leq b, r \leq 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ả:
Xuất ra tệp Gannhat.out
gồm ~r~ số nguyên trên 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ụ:
Gannhat.inp | Gannhat.out | Giải thích |
---|---|---|
6 6 2 3 | 1 2 1 | - Thành phố 1 → 1 |
1 5 | - Thành phố 4 → 4 | |
3 2 4 | - Thành phố 5 → 5 → 4 → 3 | |
3 4 | ||
1 6 | ||
6 2 | ||
1 2 | ||
4 5 | ||
5 3 |
Ràng buộc:
- Subtask 1 (40% số test): ~2 \leq n \leq 2000, 1 \leq m \leq 2000~
- Subtask 2 (60% số test): Không có ràng buộc gì thêm.
Bình luận