[转]http://blog.csdn.net/zxy_snow/article/details/5998184
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#define N 101
using namespace std;
int Maxsum(int n, int *a)
{
int sum = 0,b = 0;
for(int i=0; i<n; i++)
{
if( b > 0 )
b += a[i];
else
b = a[i];
if( b > sum )
sum = b;
}
return sum;
}
int main(void)
{
int n,mat[N][N];
int sum[N],max = 0;
cin >> n;
for(int i=0; i<n; i++)
for(int k=0; k<n; k++)
cin >> mat[i][k];
for(int i=0; i<n; i++)
{
memset(sum,0,sizeof(sum));
for(int k=i; k<n; k++)
{
for(int j=0; j<n; j++)
sum[j] += mat[k][j];
int tempsum = Maxsum(n,sum);
if( tempsum > max )
max = tempsum;
}
}
cout << max << endl;
return 0;
}