Latar Belakang
Saya ingin membeli sebidang tanah dan membangun rumah saya di atasnya. Rumah saya harus persegi panjang, dan sebesar mungkin; namun, plot yang tersedia memiliki banyak area berbatu yang tidak dapat saya bangun, dan saya mengalami kesulitan untuk memasang rumah potensial di plot tersebut. Saya ingin Anda menulis sebuah program yang menganalisis plot untuk saya.
Masukan dan keluaran
Input Anda adalah array 2D persegi panjang dari bit, dengan ukuran setidaknya 1 × 1, dalam format apa pun yang masuk akal. Array mewakili sebidang tanah; 1
s adalah area "baik" di mana saya bisa membangun rumah saya, dan 0
s "area berbatu" di mana rumah tidak bisa dibangun.
Output Anda akan menjadi area maksimal dari persegi panjang solid 1
s dalam array input. Itu mewakili area rumah terbesar yang bisa saya bangun di atas plot. Perhatikan bahwa jika tidak ada 1
input, maka outputnya adalah 0
.
Contoh
Pertimbangkan inputnya
101
011
111
S persegi terbesar adalah persegi panjang 1
2 × 2 di sudut kanan bawah. Ini berarti bahwa output yang benar adalah 4
.
Aturan dan penilaian
Anda dapat menulis program atau fungsi lengkap. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Uji kasus
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
.