Sau khi chiến thắng quân xâm lược, nhà vua của đất nước Islanders muốn xây dựng hệ thống doanh trại quân sự tại các ngôi làng để củng cố vững chắc nền độc lập của mình. Đất
nước có \(n\) ngôi làng được đánh số từ \(1\) đến \(n\) và các ngôi làng này đượ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 ngôi
làng, đảm bảo luôn có đường đi lại giữa hai ngôi làng bất kì trong nước (trực tiếp hoặc đi
qua một số ngôi làng khác). Giữa hai ngôi làng bất kì không có quá một tuyến đường nối
trực tiếp. Nhà vua 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 ngôi làng khác nhau. Sau khi họp với các tướng lĩnh, nhà vua đã chọn ra \(r\) ngôi làng
khác nhau để đặt doanh trại quân sự.
Yêu cầu với mỗi ngôi làng được đặt doanh 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ừ ngôi làng đó đến một kho lương thực bất kì.
Input
Vào từ file văn bản KHOLUONG.INP:
- Dòng thứ nhất gồm bốn số nguyên: \(n, m, b, r(2 \le n \le 5.10^5;1 \le m \le 5.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 ngôi làng được đặt kho lương.
- Dòng thứ ba gồm \(r\) số nguyên là chỉ số của các ngôi làng được đặt doanh trại.
- \(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 ngôi làng \(u\) và \(v\).
Output
Ghi ra file văn bản KHOLUONG.OUT:
- 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 ngôi làng được đặt
doanh trại quân sự theo thứ tự của dữ liệu vào.
Scoring
- Subtask \(1\) (\(40\%\) số điểm): \(2 \le n \le 2000, 1 \le m \le 2000\)
- Subtask \(2\) (\(60\%\) số điểm): Không có ràng buộc gì thêm
Example
Test 1
Input
6 6 2 3
3 2
1 5 4
1 2
1 6
3 6
2 3
4 5
3 4
Output
1 2 1
Note
- Ngôi làng 1: 1 → 2
- Ngôi làng 4: 4 → 3
- Ngôi làng 5: 5 → 4 → 3
Bình luận