Huy Nhảy

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: 1800 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bảo Huy là chú ếch đẹp trai nhất đầm sen ITK19. Đầm sen này được chia thành một bảng ô vuông gồm \(M\) hàng (đánh số từ trên xuống dưới) và \(N\) cột (đánh số từ trái qua phải). Ta quy ước ô nằm ở giao điểm của hàng \(i\) và cột \(j\) là ô \((i, j)\). Một số ô trong đầm có chứa một lá sen nổi (ký hiệu o) để Huy có thể nhảy lên, các ô còn lại có 100% bề mặt là nước (ký hiệu là .). Huy cần nhảy từ ô có ký tự S đến ô có ký tự T (hai ô này đều mặc định chứa một lá sen) theo quy tắc: ở mỗi bước anh chỉ có thể nhảy từ ô hiện tại đến một ô chứa lá sen trên cùng hàng hoặc cùng cột. CaiWinDao muốn bỏ đi một số lá sen trong đầm (trừ hai lá tại S và T) để Huy không còn có thể nhảy từ S đến T nữa. Các bạn hãy lập trình giúp CaiWinDao xác định số lá sen ít nhất cần bỏ đi nhé!

Input

  • Dòng đầu hai số nguyên dương \(M\) và \(N\) \((2\leq M, N\leq 100)\).

  • \(M\) dòng sau, mỗi dòng chứa \(N\) ký tự mô tả đầm sen.

Output

  • Một số nguyên là số lượng lá sen ít nhất cần bỏ để Huy không thể nhảy từ S đến T. Nếu không tìm được phương án thỏa mãn thì in ra \(-1\).

Example

Test 1

Input
3 3
S.o
.o.
o.T
Output
2
Note

CaiWinDao cần bỏ đi lá sen ở góc trên bên phải và góc dưới bên trái.

Test 1

Input
3 4
S...
.oo.
...T
Output
0

Test 1

Input
4 3
.S.
.o.
.o.
.T.
Output
-1

Test 1

Input
10 10
.o...o..o.
....o.....
....oo.oo.
..oooo..o.
....oo....
..o..o....
o..o....So
o....T....
....o.....
........oo
Output
5

Bình luận

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

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

Kỳ thi: