/*22:15:07 Accepted 1001 15 MS 224 KB Visual C++*/ #include <stdio.h> #define max(a, b)(a>b ? a:b) const int maxint = 2147483647; int a[101][101]; int MaxSeq(int n, int *b) { int sum = -maxint, cursum = 0; for (int i=1; i<=n; i++) { if(cursum > 0) cursum += b[i]; else cursum = b[i]; sum = max(sum,cursum); } return sum; } int MaxSum(int n) { int i, j; int sum = -maxint; int *b = new int[n+1]; for (i=1; i<=n; i++) { for(j=1; j<=n; j++) b[j] = a[i][j]; for(j=i+1; j<=n; j++) { for(int k=1; k<=n; k++) b[k] += a[j][k]; sum = max(sum,MaxSeq(n, b)); } } return sum; } int main() { int n; while(scanf("%d", &n)!=EOF) { for (int i=1; i<=n; i++) for (int j=1; j<=n; j++) scanf("%d", &a[i][j]); printf("%d/n", MaxSum(n)); } return 0; }