# include # include # define dim 105 using namespace std; // ifstream f("square.in"); ofstream g("square.out"); int a[ dim ][ dim ], lin[ dim ][ dim ], col[ dim ][ dim ]; int n; int sol = -999999999; int ok; void citire() { int i, j; cin >> n; for ( i = 1 ; i <= n ; i++ ) for ( j = 1 ; j <= n ; j++ ) { cin >> a[ i ][ j ]; lin[ i ][ j ] = a[ i ][ j ] + lin[ i ][ j - 1 ]; col[ i ][ j ] = a[ i ][ j ] + col[ i - 1 ][ j ]; } for ( i = 1 ; i <= n ; i++ ) { for ( j = 1 ; j <= n ; j++ ) g << lin[ i ][ j ] << " "; g << "\n"; } } void rezolvare() { int i, j, x, y; if ( n != 1 ) { for ( i = 1 ; i <= n ; i++ ) for ( j = 1 ; j <= n ; j++ ) { x = i; y = j; sol = max( sol, a[ i ][ j ] ); //sol = max( sol, lin[ i ][ y ] + lin[ x ][ y ] + ( col[ x - 1 ][ j ] - col[ i ][ j ] ) + ( col[ x - 1 ][ y ] - col[ i ][ y ] ) ); //cout << sol << "\n"; while ( x <= n && y <= n ) { //sol = 0; x++; y++; if ( x <= n && y <= n ) { if ( x - i <= 1 ) sol = max( sol, lin[ i ][ y ] - lin[ i ][ j - 1 ] + lin[ x ][ y ] - lin[ x ][ j - 1 ] ); else sol = max( sol, ( lin[ i ][ y ] - lin[ i ][ j - 1 ] )+ ( lin[ x ][ y ] - lin[ x ][ j - 1 ] ) + ( col[ x - 1 ][ j ] - col[ i ][ j ] ) + ( col[ x - 1 ][ y ] - col[ i ][ y ] ) ) ; } //cout << sol << "\n"; } } } else sol = a[ 1 ][ 1 ]; } int main() { citire(); rezolvare(); cout << sol; return 0; }