#include #include #define nmax 51 using namespace std; int A[nmax][nmax], N, i, j, x, y, k, L[nmax][nmax], C[nmax][nmax], maxim; int main() { maxim = INT_MIN; int nr; scanf ("%d", &N); for (i = 1; i <= N; ++i) for (j = 1; j <= N; ++j) { scanf ("%d", &A[i][j]); if (A[i][j] > maxim) maxim = A[i][j]; L[i][j] = A[i][j] + L[i][j-1]; C[i][j] = A[i][j] + C[i-1][j]; } int xa, xb, ya, yb; for (xb = 1; xb <= N; ++xb) for (yb = 1; yb <= N; ++yb) for (xa = 1; xa <= xb; ++xa) for (ya = 1; ya <= yb; ++ya) { nr = L[xa][yb] - L[xa][ya-1]; nr += L[xb][yb] - L[x][ya-1]; nr += C[xb][ya] - C[xa-1][ya]; nr += C[xb][yb] - C[xa-1][yb]; nr -= (A[xa][ya] + A[xa][yb] + A[xb][ya] + A[xb][yb]); if (xa == xb && ya == yb) nr += A[xa][ya]; if (nr > maxim) maxim = nr; } printf ("%d\n", maxim); return 0; }