Một khu vườn hình chữ nhật có kích thước \(n \times m\) (\(n\) dòng, \(m\) cột). Ta đánh số các dòng từ 1 đến \(n\) theo chiều từ trên xuống dưới và các cột từ 1 đến \(m\) theo chiều từ trái sang phải để chia khu vườn thành các ô. Trong các ô đó, ngoài những ô là đất để người nông dân trồng rau vẫn có những ô là đá không thể trồng rau được. Một chú ốc sên xuất phát tại ô \((x,\ y)\) (\(x\) là vị trí dòng, \(y\) là vị trí cột). Nếu ô xuất phát là đất, chú ốc sên có thể di chuyển sang 4 ô kề cạnh với ô đó (bên trái, bên phải, bên trên, bên dưới) và đương nhiên không thể di chuyển vào ô đá được. Trường hợp ô xuất phát là đá thì chú ốc sên không thể di chuyển đến ô nào khác.
Yêu cầu: Hãy tính xem chú ốc sên có thể di chuyển đến nhiều nhất là bao nhiêu ô để ăn rau?
Dữ liệu vào:
- Dòng thứ nhất gồm 4 số nguyên \(n,\ m,\ x,\ y\) \((1 \leq x \leq n \leq 2000,\ 1 \leq y \leq m \leq 2000)\);
- Trong \(n\) dòng tiếp theo, mỗi dòng gồm \(m\) số nguyên 0 hoặc 1, số 0 nghĩa là ô trồng rau, số 1 nghĩa là ô đá.
Kết quả: Ghi một số nguyên là số lượng ô lớn nhất mà chú ốc sên có thể di chuyển đến để ăn rau. Nếu chú ốc sên không ăn được ô rau nào thì ghi kết quả là \(- 1\).
Ví dụ:
Input |
Output |
4 5 2 40 0 1 0 00 1 0 0 11 0 0 0 00 1 0 0 1 |
10 |
Ràng buộc:
+ Sub1: Có 50% test tương ứng 50% số điểm của bài với \(n,\ m < 10\);
+ Sub2: Có 30% test tương ứng 30% số điểm của bài với \(n,\ m\ \leq \ 100\);
+ Sub3: Có 20% test khác tương ứng 20% số điểm còn lại của bài với \(n,\ m \leq 2 \times 10^{3}\).
Code tích cực |
---|
Trong 24h |
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |