#include<iostream>
#define maxn 105
#define INF 0x7fffffff
using namespace std;
int a[maxn][maxn];
int b[maxn];
int n;
int fun1()
{
int ret=-INF,k=0;
for(int i=1; i<=n; i++)
{
if(k>0)
{
k+=b[i];
}
else
{
k=b[i];
}
if(k>ret)
ret=k;
}
return ret;
}
int fun()
{
int ret=-INF,sum;
for(int i=1; i<=n; i++)
{
for(int k=0; k<=n; k++) b[k]=0;
for(int j=i; j<=n; j++)
{
for(int k=1; k<=n; k++) b[k]+=a[j][k];
sum=fun1();
if(sum>ret)
ret=sum;
}
}
return ret;
}
int main()
{
cin>>n;
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
cin>>a[i][j];
}
}
cout<<fun()<<endl;
return 0;
}
最大字段和模版(二维)
最新推荐文章于 2019-01-19 13:58:38 发布