พื้นหลัง
ฉันต้องการซื้อที่ดินและสร้างบ้านของฉันบนมัน บ้านของฉันควรเป็นรูปสี่เหลี่ยมผืนผ้าและมีขนาดใหญ่ที่สุด อย่างไรก็ตามพล็อตที่มีอยู่นั้นมีพื้นที่หินมากมายที่ฉันไม่สามารถสร้างได้และฉันมีปัญหากับการสร้างบ้านที่มีศักยภาพบนที่ดิน ฉันต้องการให้คุณเขียนโปรแกรมที่วิเคราะห์แปลงให้ฉัน
อินพุตและเอาต์พุต
ข้อมูลที่คุณป้อนเป็นบิต 2 มิติรูปสี่เหลี่ยมผืนผ้าขนาดอย่างน้อย 1 × 1 ในรูปแบบที่เหมาะสม อาร์เรย์แสดงให้เห็นถึงที่ดิน 1
มีพื้นที่ "ดี" ที่ฉันสามารถสร้างบ้านของฉันและพื้นที่0
เป็น "หิน" ที่ไม่สามารถสร้างบ้านได้
เอาต์พุตของคุณจะต้องเป็นพื้นที่สูงสุดของสี่เหลี่ยมทึบของ1
s ในอาร์เรย์อินพุต มันหมายถึงพื้นที่ของบ้านที่ใหญ่ที่สุดที่ฉันสามารถสร้างบนที่ดิน โปรดทราบว่าถ้าไม่มี1
s 0
ในการป้อนข้อมูลแล้วส่งออกเป็น
ตัวอย่าง
พิจารณาอินพุต
101
011
111
สี่เหลี่ยมที่ใหญ่ที่สุดคือสี่เหลี่ยม1
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
ไบต์: