比赛 10101115 评测结果 WAWAAAAAAA
题目名称 牛宫 最终得分 80
用户昵称 .Xmz 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2010-11-15 11:08:13
显示代码纯文本
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cstdio>

using namespace std;

int n,m,ans;
long long a[201][201];
long long s[201][201];

long long sq(int i,int j,int k,int p)
{
	return s[k][p]-s[i-1][p]-s[k][j-1]+s[i-1][j-1];
}

int main()
{
	freopen("long.in","r",stdin);
	freopen("long.out","w",stdout);
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;i++)
	for (int j=1;j<=m;j++)
	{
		scanf("%lld",&a[i][j]);
		s[i][j]=s[i][j-1]+s[i-1][j]-s[i-1][j-1]+a[i][j];
	}
	
	for (int i=1;i<=n;i++)
	for (int j=i;j<=n;j++)
	{
		int t=m;
		for (int k=m;k>=1;k--)
		{
			if (sq(i,k,j,k)>=0)
			{
				int p=t+1;
				for (p=t+1;p<=m;p++)
				{
					if (sq(i,k,j,p)<0) break;
				}
				t=p-1;
				if (ans<(j-i+1)*(t-k+1)) ans=(j-i+1)*(t-k+1);
			}
			else
			{
				int p=t;
				for (p=t;p>=k;p--)
				{
					if (sq(i,k,j,p)>=0) break;
				}
				t=p;
				if (ans<(j-i+1)*(t-k+1)) ans=(j-i+1)*(t-k+1);
			}
		}
	}
	printf("%d\n",ans);
	return 0;
}