Java Bài 5.21: Khoảng cách giữa hai điểm
Hiếu đang trong nhiệm vụ đi tìm kho báu, trong tay của anh ta có một tấm bản đồ được mô tả theo dạng lưới có \(H\) hàng ngang và \(W\) cột dọc.
Trạng thái của các các điểm trên tấm bản đồ bằng \(H\) xâu: \(S_1,..., S_H\) với kích thước là \(W\). Nếu tại điểm \(S_{i, j} =\) o
nghĩa là tại đó là kho báu hoặc là điểm Hiếu đang đứng theo mổ tả bản đồ ở tọa độ hàng thứ \(i\) tính từ trên xuống và cột thứ \(j\) tính từ trái sang. Ngược lại nếu \(S_{i, j} =\) -
nghĩa là tại đó không có gì cả.
Hiếu chỉ có thể di chuyển lên, xuống, sang trái hoặc sang phải và không được phép di chuyển quân cờ ra ngoài. Trên bản đồ chỉ mô tả kí tự o
nhưng anh ta lại không biết chính xác điểm o
nào là kho báu và điểm hiện tại anh ta đứng. Anh ta chỉ muốn biết con đường ngắn nhất để đi điểm o
đến điểm o
còn lại.
Yêu cầu các bạn viết chương trình tính toán thử cần tối thiểu bao nhiêu lần di chuyên để di chuyển giữa hai ô o
.
INPUT FORMAT
Dòng đầu tiên chứa hai số nguyên \(H\) và \(W\) \((2 \le H, W \le 100)\).
\(H\) dòng tiếp theo, mỗi dòng chứa một xâu với kích thước là \(W\), chỉ bao gồm 1 trong 2 kí tự là -
hoặc o
.
OUTPUT FORMAT
In ra số nguyên duy nhất, là số bước tối thiểu để di chuyển giữa hai ô có kí tự o
.
Ví dụ:
Input
2 3
--o
o--
Output
3
Lời giải bài tập này: Tại đây
Group giải đáp thắc mắc: Lập trình 24h
Fanpage CLB: CLB lập trình Full House- Việt Nam
Youtube: CLB Lập Trình Full House
Comments