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