文章转自:文章链接
#include <stdio.h>
#define MAX 500
int matrix[MAX][MAX];
int min(int a, int b){
return a < b ? a : b;
}
int main()
{
int max = 1;
int m, n;
scanf("%d%d", &m,&n);
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
scanf("%d", &matrix[i][j]);
for(int i = 1; i < m; i++)
for(int j = 1; j < n; j++)
if(matrix[i][j] == 1)
{
int mmin = min(matrix[i - 1][j], matrix[i][j - 1]);
mmin = min(matrix[i - 1][j - 1], mmin);
matrix[i][j] = mmin + 1;
if(max < matrix[i][j])
max = matrix[i][j];
}
printf("%d", max);
return 0;
}