Chó sói trong rừng

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1600 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Chú chó sói Vũ đang chạy trốn khỏi một đám thợ săn khát máu. Những người thợ săn rất thông minh và họ đang nấp sau những cái cây. Vũ biết điều đó, nhưng không biết chính xác cây nào. Con sói muốn về nơi ở của nó một cách an toàn nhất, tức là càng xa cây càng tốt!

Khu rừng có thể được mô tả bằng một hình chữ nhật kích thước \(n \cdot m\). Những ô trống được đánh dấu bằng ký hiệu ., những ô có cây là +, vị trí ban đầu của Vũ là V và nhà của nó là J. Vũ có thể chạy từ ô nó đang đứng đến \(4\) ô chung cạnh xung quanh nó đứng.

Nếu Vũ đang ở ô \((r, c)\) và có một cái cây ở ô \((a, b)\) thì khoảng cách được tính theo công thức: \(|r-a| + |c-b|\). Hãy giúp Vũ tìm đường đi an toàn nhất để về nhà. Đường đi an toàn nhất được hiểu là đường đi mà khoảng cách bé nhất từ một ô nào đó trên đường đi đó đến tất cả các cây là lớn nhất.

Input

  • Dòng đầu tiên là hai số \(n, m\) (\(0 < n, m \le 500\)).
  • \(n\) dòng sau mỗi dòng gồm \(m\) ký tự thuộc tập {+, ., V, J} mô tả khu rừng.
  • Dữ liệu luôn đảm bảo chứa một ký tự V, một ký tự J và ít nhất một ký tự +.

Output

  • Gồm một dòng duy nhất là kết quả tìm được.

Example

Test 1

Input
4 4
+...
....
....
V..J
Output
3

Test 2

Input
4 5
.....
.+++.
.+.+.
V+.J+
Output
0

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.