#include using namespace std; const int NMAX= 50; int v[NMAX+1][NMAX+1], col[NMAX+1][NMAX+1], lin[NMAX+1][NMAX+1]; void Suma_partiale( int N ) { for( int i=1; i<=N; i++ ) { for( int j=1; j<=N; j++ ) { col[i][j]= col[i][j-1] + v[j][i]; lin[i][j]= lin[i][j-1] + v[i][j]; } } } void rezolva( int N ) { int R= -(1<<30); for( int x1=1; x1<=N; x1++ ) { for( int y1=1; y1<=N; y1++ ) { int s; for( int x2= x1, y2= y1; x2<=N && y2<=N; x2++, y2++ ) { s= ( lin[x1][y2]-lin[x1][y1-1] ) + ( lin[x2][y2]-lin[x2][y1-1] ) + ( col[y1][x2]-col[y1][x1-1] ) + ( col[y2][x2]-col[y2][x1-1] ) - ( v[x2][y1]+v[x2][y2]+v[x1][y1]+v[x1][y2] );; if( s > R ) R= s; } } } cout << R << '\n'; } int main() { int N; cin >> N; for(int i=1; i<=N; i++) { for( int j=1; j<=N; j++ ) { cin >> v[i][j]; } } Suma_partiale( N ); rezolva( N ); return 0; }