Bệnh viện gần nhất
Đề bài
Mô tả
Một thành phố có nút giao thông đánh số từ đến và con đường một chiều; con đường thứ đi từ tới và dài . Có thể có đường từ một nút về chính nó và nhiều đường giữa cùng một cặp nút.
Có nút đặt bệnh viện. Với mỗi nút , hãy tìm độ dài đường đi ngắn nhất từ tới một bệnh viện (đi đúng chiều các con đường) và cho biết đó là bệnh viện nào. Nếu có nhiều bệnh viện cùng gần nhất, chọn bệnh viện đặt ở nút có số thứ tự nhỏ nhất. Nếu là bệnh viện thì khoảng cách bằng và bệnh viện là chính .
Dữ liệu vào
- Dòng đầu tiên chứa ba số nguyên , , .
- Dòng thứ hai chứa số nguyên khác nhau: các nút có bệnh viện.
- dòng tiếp theo, dòng thứ chứa ba số nguyên .
Dữ liệu ra
In ra dòng, dòng thứ gồm hai số: độ dài đường đi ngắn nhất từ tới bệnh viện gần nhất và nút đặt bệnh viện đó; hoặc nếu từ không tới được bệnh viện nào.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 5 2 2 5 1 2 7 1 3 2 3 5 2 2 4 1 5 4 1 |
4 5 0 2 2 5 -1 0 5 |
Từ nút : tới bệnh viện qua nút dài , tới bệnh viện dài . Nút không có đường đi ra nên không tới được bệnh viện nào, dù có đường từ hai bệnh viện đi tới nó. |
| 6 5 2 4 1 2 1 3 2 4 3 3 2 1 5 4 2 6 6 1 |
0 1 3 1 4 1 0 4 2 4 -1 |
Từ nút , hai bệnh viện và cùng cách , chọn bệnh viện . |
Bình luận