题目链接 点击打开链接
#include<iostream>
using namespace std;
int a[105][105],dp[105],Max=-100000;
int solve(int n)
{
int i,j,k,t;
for(i=0; i<n; i++)
{
for(j=i; j<n; j++)
{
for(k=0; k<n; k++)
{
dp[k]=0;
for(t=i; t<=j; t++)
{
dp[k]+=a[t][k];
}
}
int sum=0;
for(k=0; k<n; k++)
{
sum+=dp[k];
if(sum<0)
sum=0;
if(Max<sum)
{
Max=sum;
}
}
}
}
return Max;
}
int main()
{
int i,j,n;
cin>>n;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
cin>>a[i][j];
}
}
cout<<solve(n)<<endl;
return 0;
}