#include #include using namespace std; ifstream in("max.in"); ofstream out("max.out"); int M[55][55]; int sp[55][55]; int sp1[55][55]; int sp2[55][55]; int suma(int l,int c,int lg) { if(lg==1) return M[l][c]; return sp1[l+lg-1][c]+sp1[l+lg-1][c+lg-1]-sp1[l-1][c]-sp1[l-1][c+lg-1] + sp2[l][c+lg-1]+sp2[l+lg-1][c+lg-1]-sp2[l][c-1]-sp2[l+lg-1][c-1]-M[l][c]-M[l+lg-1][c]-M[l][c+lg-1]-M[l+lg-1][c+lg-1]; } int main() { int n; cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>M[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) sp1[i][j]=sp1[i-1][j]+M[i][j]; for(int j=1;j<=n;j++) for(int i=1;i<=n;i++) sp2[i][j]=sp2[i][j-1]+M[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) sp[i][j]=sp1[i][j]+sp2[i][j]; int smax=-100; for(int lg=1;lg<=n;lg++) for(int l=1;l<=n-lg+1;l++) for(int c=1;c<=n-lg+1;c++) smax=max(smax,suma(l,c,lg)); cout<