#include "bits/stdc++.h"
using namespace std;
int main()
{
while (1)
{
int n,m;cin >> n >> m;
if(n==0&&m==0) return 0;
int a[n+1][m+1],ans=0,b[n+1][m+1];
fill(a[0],a[0]+(n+1)*(m+1),0);
fill(b[0],b[0]+(n+1)*(m+1),0);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
cin >> a[i][j];
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
b[i][j] = a[i][j] + b[i - 1][j] + b[i][j - 1] - b[i - 1][j - 1];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(!a[i][j]) continue;
int d=1;
while (i+d<=n&&j+d<=m)
{
int x1=i,y1=j,x2=d+i,y2=d+j;
int s=b[x2][y2]-b[x2][y1-1]-b[x1-1][y2]+b[x1-1][y1-1];
if(s==(d+1)*(d+1))
{
d++;
continue;
}
else
break;
}
ans=max(ans,d);
}
}
cout << ans << endl;
}
}
Maximum Square UVALive - 4867
最新推荐文章于 2024-07-23 15:46:40 发布