ỐC SÊN ĂN RAU

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 4

0 0 1 0 0

0 1 0 0 1

1 0 0 0 0

0 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}\).

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. rianzz (10/17)
  2. bo0n_0708 (9/27)
  3. minh1806 (6/19)
Trong 7 ngày
  1. tienthanh0201 (45/53)
  2. sangdp.clc (44/73)
  3. bo0n_0708 (38/92)
Trong 30 ngày
  1. conmadem (163/205)
  2. bo0n_0708 (139/237)
  3. bao_khanh (112/176)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 39607

Lưu Hải Phong - 2020
[email protected]