比赛 |
10101115 |
评测结果 |
WWWWWWWWWW |
题目名称 |
牛宫 |
最终得分 |
0 |
用户昵称 |
Pom |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2010-11-15 09:30:01 |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
using namespace std;
const int MAXN=220;
int n,m,i,j,k,a[MAXN][MAXN],map[MAXN][MAXN],ans,x,y;
inline int cal(int i,int j,int x,int y)
{
return (a[x][y]-a[i-1][y]-a[x][j-1]+a[i-1][j-1]);
}
void init()
{
freopen("long.in","r",stdin);
freopen("long.out","w",stdout);
scanf("%d%d",&n,&m);
memset(a,0,sizeof(a));
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
scanf("%d",&map[i][j]);
a[i][j]=a[i-1][j]+a[i][j-1]+map[i][j]-a[i-1][j-1];
}
}
void solve()
{
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
for (k=1;k<=min(n-i+1,m-j+1);k++)
if (cal(i,j,i+k-1,j+k-1)>0)
if (k>ans) ans=k;
printf("%d\n",ans*ans);
}
int main()
{
init();
solve();
return 0;
}