GRID
Gửi bài giải
Điểm:
50
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
1G
Tác giả:
Kiểu bài tập
Ngôn ngữ cho phép
C++, Python
Cho một bảng kích thước N × N, các dòng và các cột được đánh số từ 0 đến N - 1.
Mỗi ô trên bảng có thể là ô bị cấm hoặc ô không bị cấm.
Bạn được phép di chuyển từ ô (a, b) đến ô (c, d) nếu thỏa mãn:
- Hai ô nằm trên cùng một dòng hoặc cùng một cột;
- Đường đi giữa hai ô không đi qua bất kỳ ô bị cấm nào.
Mỗi lần di chuyển từ một ô đến một ô khác được tính là 1 bước.
Yêu cầu: Hãy tìm số bước di chuyển ít nhất để đi từ ô (sₓ, sᵧ) đến ô (eₓ, eᵧ).
INPUT
- Dòng đầu tiên chứa số nguyên dương N (1 ≤ N ≤ 100), là kích thước của bảng;
- N dòng tiếp theo, mỗi dòng chứa N ký tự mô tả bảng:
Xlà ô bị cấm;.là ô không bị cấm.
- Dòng cuối cùng chứa bốn số nguyên sₓ, sᵧ, eₓ, eᵧ, lần lượt là tọa độ ô bắt đầu và ô đích.
OUTPUT
In ra một số nguyên duy nhất là số bước di chuyển ít nhất để đi từ ô (sₓ, sᵧ) đến ô (eₓ, eᵧ).
Ví dụ
Sample Input
3
.X.
.X.
...
0 0 0 2
Sample Output
3
Giải thích
Bảng có dạng:
. X .
. X .
. . .
Một cách đi ngắn nhất từ (0, 0) đến (0, 2) là:
(0,0) → (2,0) → (2,2) → (0,2)
Vì vậy cần ít nhất 3 bước.
Nhận xét