Фон
Я хочу придбати земельну ділянку і побудувати на ній свій будинок. Мій будинок повинен бути прямокутним і максимально великим; Однак на наявних ділянках є багато скелястих ділянок, які я не можу будувати, і у мене виникають проблеми з прилаштуванням потенційного будинку на ділянках. Я хочу, щоб ви написали програму, яка аналізує сюжети для мене.
Вхід і вихід
Ваш вхід - це прямокутний 2D масив бітів розміром принаймні 1 × 1 у будь-якому розумному форматі. Масив являє собою земельну ділянку; 1
s - "хороші" райони, де я міг би побудувати свій будинок, а 0
s - "кам'янисті" ділянки, де будинок неможливо побудувати.
Ваш вихід повинен бути максимальною площею суцільного прямокутника 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
.