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; 1s son áreas "buenas" donde podría construir mi casa, y 0s son áreas "rocosas" donde no se puede construir la casa.
Su salida será el área máxima de un rectángulo sólido de 1s 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 1s en la entrada, entonces la salida es 0.
Ejemplo
Considere la entrada
101
011
111
El rectángulo más grande de 1s 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.