Cổng dịch chuyển
Đề bài
Mô tả
Có thành phố đánh số từ đến và con đường hai chiều; con đường thứ nối với và đi hết mất phút. Có thể có đường nối một thành phố với chính nó và nhiều đường nối cùng một cặp thành phố.
Ngoài ra còn có mạng dịch chuyển. Mạng thứ gồm thành phố khác nhau và có thời gian dịch chuyển : từ bất kỳ thành phố nào của mạng, bạn có thể dịch chuyển tới bất kỳ thành phố nào khác của cùng mạng đó, mất phút. Một thành phố có thể thuộc nhiều mạng.
Xuất phát từ thành phố , hãy tính thời gian ít nhất để tới từng thành phố.
Dữ liệu vào
- Dòng đầu tiên chứa ba số nguyên , , .
- dòng tiếp theo, dòng thứ chứa ba số nguyên .
- dòng tiếp theo, dòng thứ bắt đầu bằng hai số nguyên , , sau đó là số nguyên: các thành phố thuộc mạng .
Dữ liệu ra
In ra số trên một dòng, số thứ là thời gian ít nhất để tới thành phố , hoặc nếu không tới được.
Ràng buộc
- và
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 4 1 1 2 10 2 3 10 3 4 10 4 5 10 3 2 2 5 |
0 10 20 23 13 | Tới thành phố mất , dịch chuyển sang mất thêm , rồi đi đường thêm . |
| 6 2 2 1 2 4 3 4 1 7 2 2 3 2 2 3 5 |
0 4 11 12 13 -1 | Thành phố thuộc cả hai mạng: (), dịch chuyển (), dịch chuyển (). Thành phố không tới được. |
Bình luận