/* 解题报告: 1、求一行数的最大连续和子序列 2、将多维压缩为一维 */ #include <iostream> #include <cstring> using namespace std; int array[101][101]; int b[101]; int nmax; int MaxSum(int a[],int n) { int sum=0; int temp=0; for(int i=1; i<=n; i++) { temp = temp+a[i] > a[i] ? temp + a[i] : a[i]; sum = sum > temp ? sum:temp; } return sum; } int main() { int n; int i,j,k; int temp; while(cin>>n) { nmax = 0; for(i=1; i<=n; i++) for(j=1; j<=n; j++) cin>>array[i][j]; for(i=1; i<=n; i++) { memset(b, 0, sizeof(b)); for(j=i; j<=n; j++) { for(k=1; k<=n; k++) { b[k] += array[j][k]; } temp = MaxSum(b, n); nmax = (nmax > temp ? nmax : temp); } } cout<<nmax<<endl; } return 0; }