#include #include using namespace std; const int MAXN = 52; const int INF = 0x3f3f3f3f; int n, a[MAXN][MAXN], partSum[MAXN][MAXN]; int getSum(int x, int y, int k) { int sum = 0; if (k == 1) return a[x][y]; for (int i = 1; i < k - 1; ++i) sum += a[x + i][y] + a[x][y + i] + a[x + i][y + k - 1] + a[x + k - 1][y + i]; sum += a[x][y] + a[x + k - 1][y + k - 1]; sum += a[x][y + k - 1] + a[x + k - 1][y]; return sum; } int main() { //#ifndef ONLINE_JUDGE //freopen("a.in", "r", stdin); //#endif // ONLINE_JUDGE cin >> n; for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) cin >> a[i][j]; int rez = -INF; for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) { for (int k = 1; k + i - 1 <= n && k + j - 1 <= n; ++k) { rez = max(rez, getSum(i, j, k)); } } cout << rez; return 0; }