#include using namespace std; int n, a[101][101], s[101][101], sc[101][101]; int main() { freopen("maxsquare.in", "r", stdin); freopen("maxsquare.out", "w", stdout); scanf("%d", &n); int Max = -2000000000; for(int i = 1; i <= n ; ++i){ for(int j = 1; j <= n ; ++j){ scanf("%d", &a[i][j]); s[i][j] += s[i][j - 1] + a[i][j]; sc[i][j] += sc[i - 1][j] + a[i][j]; if(a[i][j] > Max) Max = a[i][j]; } } for(int t = 1; t < n ; ++t){ for(int i = 1; i <= n - t; ++i){ for(int j = 1; j <= n - t ; ++j){ int Sum = (s[i + t][j + t] + s[i][j + t] - s[i][j - 1] - s[i + t][j - 1]); Sum = Sum + sc[i + t - 1][j] - sc[i][j] + sc[i + t - 1][j + t] - sc[i][j + t]; if(Sum > Max) Max = Sum; } } } printf("%d", Max); return 0; }