#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<vector<int>> a(n, vector<int>(n)); for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j) cin >> a[i][j]; int best = INT_MIN; for (int L = 0; L < n; ++L) { vector<int> sum(n, 0); // 行累计和 for (int R = L; R < n; ++R) { for (int i = 0; i < n; ++i) // 把第 R 列加入 sum[i] += a[i][R]; // Kadane: 一维最大子段和 int cur = sum[0], mx = sum[0]; for (int i = 1; i < n; ++i) { cur = max(sum[i], cur + sum[i]); mx = max(mx, cur); } best = max(best, mx); } } cout << best << '\n'; return 0; }