Fondo
Quiero comprar un terreno y construir mi casa en él. Mi casa debe ser rectangular y lo más grande posible; sin embargo, las parcelas disponibles tienen muchas áreas rocosas en las que no puedo construir, y tengo problemas para instalar una casa potencial en las parcelas. Quiero que escribas un programa que analice las tramas por mí.
Entrada y salida
Su entrada es una matriz rectangular 2D de bits, de un tamaño de al menos 1 × 1, en cualquier formato razonable. La matriz representa una parcela de tierra; 1
s son áreas "buenas" donde podría construir mi casa, y 0
s son áreas "rocosas" donde no se puede construir la casa.
Su salida será el área máxima de un rectángulo sólido de 1
s en la matriz de entrada. Representa el área de la casa más grande que podría construir en la parcela. Tenga en cuenta que si no hay 1
s en la entrada, entonces la salida es 0
.
Ejemplo
Considere la entrada
101
011
111
El rectángulo más grande de 1
s es el rectángulo 2 × 2 en la esquina inferior derecha. Esto significa que la salida correcta es 4
.
Reglas y puntaje
Puede escribir un programa completo o una función. El conteo de bytes más bajo gana, y las lagunas estándar no se permiten.
Casos de prueba
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
.