Đi đến trường
Đề bài
Mô tả
Dima cần đi từ nhà đến trường trong thời gian ngắn nhất.
Thành phố Dima đang ở là một lưới hình chữ nhật kích thước . Mỗi ô trên lưới được mô tả bởi một số :
- Nếu : ô bị chặn, không thể đi qua.
- Nếu : ô trống, có thể đi qua.
- Nếu với : ô chứa một cổng dịch chuyển với chi phí . Ô có cổng cũng là ô có thể đi qua.
Từ một cổng bất kỳ, Dima có thể nhảy đến một cổng khác bất kỳ. Thời gian di chuyển từ cổng đến cổng bằng (tổng chi phí của hai cổng).
Ngoài ra, Dima có thể đi từ một ô đến một ô trống kề cạnh trong thời gian . Dima có thể đi qua một ô có cổng mà không sử dụng cổng đó.
Ban đầu Dima ở ô (góc trên-trái), trường ở ô (góc dưới-phải). Hai ô này được đảm bảo là ô trống (không phải ).
Hãy tìm thời gian nhỏ nhất Dima cần để đi đến trường. Nếu không thể đến trường, in ra .
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , (; ).
- dòng tiếp theo, mỗi dòng chứa số nguyên ().
Dữ liệu ra
In ra một số nguyên duy nhất — thời gian nhỏ nhất để đi đến trường, hoặc nếu không đến được.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 5 1 0 -1 0 1 -1 0 20 0 0 -1 -1 -1 -1 -1 -1 3 0 0 0 0 -1 0 0 0 0 |
14 | Hàng giữa bị chặn hoàn toàn nên phải dùng cổng. Đi từ đến cổng với chi phí (qua đường , mất bước, tổng ), nhảy đến cổng chi phí (tổng cộng ), rồi đi đến mất bước. Tổng: . |
| 2 3 1000000000 0 0 0 0 0 0 |
3000000000 | Không có cổng, đi bộ thẳng bước với . |
| 2 5 1 0 0 0 0 0 0 0 0 0 0 |
5 | Đi bộ thẳng bước. |
Bình luận