public static void Main() {
foreach(var matrix in matrices) {
int maxArea = CalculateMaxRectangleArea(matrix);
Console.WriteLine($"The max rectangle area is {maxArea}");
static int CalculateMaxRectangleArea(string[] matrix) {
int maxArea = 0, loopCounter = 0;
for (int i = 0; i < matrix.Length; i++) {
for (int j = 0; j < matrix[i].Length; j++) {
int maxVerticalExtend = matrix.Length - i;
for (int horizontalExtend = 0; j + horizontalExtend < matrix[i].Length; horizontalExtend++) {
for (; verticalExtend < maxVerticalExtend; verticalExtend++) {
if (matrix[i + verticalExtend][j + horizontalExtend] == '0')
int area = (horizontalExtend + 1) * (verticalExtend + 1);
maxVerticalExtend = verticalExtend;
Console.WriteLine($"The loop count is {loopCounter}");