#include #include using namespace std; long a [55][55], sp1 [55][55], sp [55][55]; int main () { long i, j, n, x, y, s, smax = - 2000000000, lim, l; //freopen ("m.in", "r", stdin); //freopen ("m.out", "w", stdout); scanf ("%ld", &n); for (i = 1; i <= n; i ++) for (j = 1; j <= n; j ++) { scanf ("%ld", &a [i][j]); sp [i][j] = sp [i][j - 1] + a [i][j]; sp1 [i][j] = sp1 [i - 1][j] + a [i][j]; } for (i = 1; i <= n; i ++) for (j = 1; j <= n; j ++) { for (l = 0; l <= n; l ++) { x = i + l; y = j + l; if (x > n) break; if (y > n) break; if (i == x && y == j) s = a [i][j]; else { s = sp [i][y] - sp [i][j - 1]; s = s + sp1 [x][y] - sp1 [i][y]; s = s + sp [x][y - 1] - sp [x][j - 1]; s = s + sp1 [x - 1][j] - sp1 [i][j]; } if (s > smax) smax = s; } } printf ("%ld\n", smax); return 0; }