Olya và đồ uống tăng lực
Đề bài
Mô tả
Cho một lưới ô, mỗi ô hoặc trống (.) hoặc bị chặn (#). Bạn có thể di chuyển với tốc độ mét mỗi giây: mỗi giây, bạn chọn một trong bốn hướng (lên, xuống, trái, phải) và chạy từ đến ô liên tiếp theo hướng đó. Tất cả các ô bạn đi qua trong một giây (kể cả ô đích của giây đó) đều phải là ô trống.
Cho ô xuất phát và ô đích , hãy tính số giây tối thiểu để đi từ đến , hoặc thông báo nếu không thể đến được.
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , .
- dòng tiếp theo, mỗi dòng gồm ký tự
.hoặc#mô tả lưới. - Dòng cuối chứa bốn số nguyên , , , . Hai ô và đều là ô trống và có thể trùng nhau.
Dữ liệu ra
In ra một số nguyên duy nhất — số giây tối thiểu cần thiết để đi từ đến , hoặc nếu không thể.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 4 4 .... ###. .... 1 1 3 1 |
3 | Giây 1: chạy 3 ô sang phải đến . Giây 2: chạy 2 ô xuống đến . Giây 3: chạy 3 ô sang trái đến . |
| 2 2 1 .# #. 1 1 2 2 |
-1 | Không thể đến được vì các ô lân cận đều bị chặn. |
| 3 4 1 .... ###. .... 1 1 3 1 |
8 | Với , mỗi giây chỉ đi được một ô; đường ngắn nhất dài 8 ô. |
Bình luận