#include #include #include #define maxdim 53 #define inf (1<<30) using namespace std; int n; int a[maxdim][maxdim],Sup[maxdim][maxdim],Sleft[maxdim][maxdim]; int main () { #ifndef ONLINE_JUDGE freopen("a.in","r",stdin); freopen("a.out","w",stdout); #endif scanf("%d",&n); for ( int i = 1 ; i <= n ; ++i ){ for ( int j = 1 ; j <= n ; ++j ){ scanf("%d",&a[i][j]); Sup[i][j] = Sup[i-1][j]+a[i][j]; Sleft[i][j] = Sleft[i][j-1]+a[i][j]; } } int sol = -inf; for ( int x = 1 ; x <= n ; ++x ){ for ( int y = 1 ; y <= n ; ++y ){ sol = max(sol,a[x][y]); for ( int l = 1 ; x+l <= n && y+l <= n ; ++l ){ int x2 = x+l,y2 = y+l; int now = Sleft[x][y2]-Sleft[x][y-1]; now += Sleft[x2][y2]-Sleft[x2][y-1]; now += Sup[x2-1][y]-Sup[x][y]; now += Sup[x2-1][y2]-Sup[x][y2]; sol = max(sol,now); } } } printf("%d\n",sol); return 0; }