Ố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. trungnam (6/7)
  2. sythai (5/8)
  3. npk1605 (5/10)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

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