Lý lịch
Tôi muốn mua một mảnh đất và xây dựng ngôi nhà của mình trên đó. Nhà tôi nên có hình chữ nhật, và càng lớn càng tốt; tuy nhiên, các ô có sẵn có rất nhiều khu vực đá mà tôi không thể xây dựng được và tôi gặp khó khăn khi lắp một ngôi nhà tiềm năng trên các ô. Tôi muốn bạn viết một chương trình phân tích các âm mưu cho tôi.
Đầu vào và đầu ra
Đầu vào của bạn là một mảng 2D hình chữ nhật, có kích thước tối thiểu 1 × 1, ở bất kỳ định dạng hợp lý nào. Mảng đại diện cho một lô đất; 1
s là những khu vực "tốt" nơi tôi có thể xây dựng ngôi nhà của mình và 0
s là những khu vực "đá" nơi ngôi nhà không thể được xây dựng.
Đầu ra của bạn sẽ là diện tích tối đa của một hình chữ nhật rắn 1
s trong mảng đầu vào. Nó đại diện cho diện tích của ngôi nhà lớn nhất mà tôi có thể xây dựng trên lô đất. Lưu ý rằng nếu không có 1
s trong đầu vào, thì đầu ra là 0
.
Thí dụ
Xem xét đầu vào
101
011
111
Hình chữ nhật lớn nhất của 1
s là hình chữ nhật 2 × 2 ở góc dưới bên phải. Điều này có nghĩa là đầu ra chính xác là 4
.
Quy tắc và tính điểm
Bạn có thể viết một chương trình đầy đủ hoặc một chức năng. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép.
Các trường hợp thử nghiệm
0
-> 0
1
-> 1
00
00
-> 0
01
10
-> 1
01
11
-> 2
111
010
111
-> 3
101
011
111
-> 4
0111
1110
1100
-> 4
1111111
1110111
1011101
-> 7
111011000
110111100
001111110
011111111
001111110
000111100
000011000
-> 20
000110000
110110010
110111110
110011100
010011111
111111111
111101110
-> 12
plow
.