#include #include #include using namespace std; int N; int A[52][52], S[52][52]; int result = -0x3f3f3f3f; int sum(int i1, int j1, int i2, int j2) { if (i1 > i2 || j1 > j2) return 0; return S[i2][j2] - S[i2][j1 - 1] - S[i1 - 1][j2] + S[i1 - 1][j1 - 1]; } int main() { cin.sync_with_stdio(false); cin >> N; for (int i = 1; i <= N; ++i) for (int j = 1; j <= N; ++j) { cin >> A[i][j]; S[i][j] = A[i][j] + S[i - 1][j] + S[i][j - 1] - S[i - 1][j - 1]; } for (int i = 1; i <= N; ++i) for (int j = 1; j <= N; ++j) for (int k = i; k <= N; ++k) for (int l = j; l <= N; ++l) { if (i == k) { result = max(result, sum(i, j, i, l)); continue; } if (j == l) { result = max(result, sum(i, j, k, j)); continue; } result = max(result, sum(i, j, i, l) + sum(k, j, k, l) + sum(i + 1, j, k - 1, j) + sum(i + 1, l, k - 1, l)); } cout << result << '\n'; }