比赛 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;
}