defsolve(): n = int(input()) grid = [list(map(int, input().split())) for _ inrange(n)]
s = [[0] * (n + 1) for _ inrange(n + 1)] for i, row inenumerate(grid, start=1): for j, val inenumerate(row, start=1): s[i][j] = s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1] + val
ans = float("-inf") for x1 inrange(1, n + 1): for y1 inrange(1, n + 1): for x2 inrange(x1, n + 1): for y2 inrange(y1, n + 1): ans = max( ans, s[x2][y2] - s[x1 - 1][y2] - s[x2][y1 - 1] + s[x1 - 1][y1 - 1], ) print(ans)
defsolve(): n = int(input()) grid = [list(map(int, input().split())) for _ inrange(n)]
ans = float("-inf") for x1 inrange(n): A = [0] * n for x2 inrange(x1, n): for j inrange(n): A[j] += grid[x2][j] # 53. Maximum Subarray s = mn = 0 for x in A: s += x ans = max(ans, s - mn) mn = min(mn, s) print(ans)