Cho em hỏi bài này ạ
Cho một bảng gồm M ´ N ô vuông, các ô vuông có cạnh là 1 đơn vị. Một số ô vuông bị loại khỏi bảng, do đó trên bảng có một số lỗ hổng.
Tìm chu vi hình vuông lớn nhất trong bảng mà không có lỗ hổng.
Chẳng hạn, xét bảng 6 ´ 9 có 3 ô vuông bị loại khỏi bảng là các ô ở dòng 2 cột 6, ô ở dòng
3 cột 2, ô ở dòng 5 cột 7 (như hình dưới đây):
Cạnh hình vuông lớn nhất trong bảng trên mà không có lỗ hổng là 4, do đó chu vi cần tìm
là 4´4 = 16.
Dữ liệu:
Cho trong tập tin văn bản BOARD.INP. Dòng đầu là các số nguyên M, N (1 £M, N £ 100)
chỉ số dòng và cột của bảng.
Dòng kế tiếp gồm một số nguyên K duy nhất chỉ số ô vuông bị loại (số lỗ hổng) của bảng.
Trên K dòng tiếp theo, mỗi dòng gồm hai số nguyên tương ứng là chỉ số dòng và cột của ô
vuông bị loại. Chỉ số dòng được đánh số từ 1, tính từ trên xuống dưới trong bảng. Chỉ số
cột được đánh số từ 1, tính từ trái sang phải trong bảng.
Kết quả:
Cho trong tập tin văn bản BOARD.OUT, gồm số nguyên duy nhất là chu vi hình vuông lớn
nhất trong bảng không có lỗ hổng.
Ví dụ:
BOARD.INP BOARD.OUT
6 9 16
3
2 6
3 2
5 7
Ý tưởng của em là:
- Xét từng ô trong mảng
- Mỗi ô đang xét, nếu không phải là ô lỗ hổng thì mình tăng cạnh thêm 1 (hình vuông)
- Tăng rồi, xét hình vuông vừa có, nếu không có lỗ hổng thì tiếp tục tăng cạnh thêm 1
- Như vậy tới khi tìm có lỗ hổng trong ô vuông, tính và lưu chu vi vào 1 mảng, đem so sánh
Mọi người góp ý và cho ý tưởng khác (nếu được)
Cám ơn mọi người