Задний план
Я хочу купить участок земли и построить на нем свой дом. Мой дом должен быть прямоугольным и максимально большим; Тем не менее, на доступных участках есть много каменистых участков, на которых я не могу построить, и у меня возникают проблемы с установкой потенциального дома на участках. Я хочу, чтобы вы написали программу, которая анализирует графики для меня.
Вход и выход
Ваш ввод представляет собой прямоугольный двумерный массив битов размером не менее 1 × 1 в любом приемлемом формате. Массив представляет собой участок земли; 1
Это «хорошие» районы, где я мог бы построить свой дом, и 0
это «скалистые» районы, где дом не может быть построен.
Ваш вывод должен быть максимальной площадью сплошного прямоугольника 1
s во входном массиве. Он представляет собой площадь самого большого дома, который я мог построить на участке. Обратите внимание, что если 1
на входе нет s, то вывод будет 0
.
пример
Рассмотрим вход
101
011
111
Самый большой прямоугольник 1
s - это прямоугольник 2 × 2 в правом нижнем углу. Это означает, что правильный вывод 4
.
Правила и оценки
Вы можете написать полную программу или функцию. Побеждает меньшее количество байтов, и стандартные лазейки запрещены.
Контрольные примеры
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
.