n = int(input())
matrix = []
for _ in range(n):
matrix.append(list(map(int,input().split())))
s = [[0] * (n + 1) for _ in range(n + 1)]
for i, row in enumerate(matrix):
for j, x in enumerate(row):
s[i + 1][j + 1] = s[i + 1][j] + s[i][j + 1] - s[i][j] + x
mx = float('-inf')
以下这四个循环是为了枚举所有子矩阵用的。
for x1 in range(1, n + 1):
for y1 in range(1, n + 1):
for x2 in range(1, n + 1):
for y2 in range(1, n + 1):
if x2 < x1 or y2 < y1:
continue
current_sum = s[x2][y2] - s[x2][y1 - 1] - s[x1 - 1][y2] + s[x1 - 1][y1 - 1]
mx = max(mx, current_sum)
print(mx)