#include #include using namespace std; //ifstream fin("royfloyd.in"); #define MAX 54 int a[MAX][MAX], s1[MAX][MAX], s2[MAX][MAX]; int main() { int n, i, j, s, i1, j1, t; cin>>n; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { cin>>a[i][j]; } } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { s1[i][j]=a[i][j]+s1[i-1][j]; s2[i][j]=a[i][j]+s2[i][j-1]; } } s=1<<31; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { for(i1=i;i1<=n;i1++) { for(j1=j;j1<=n;j1++) { if(i1-i!=j1-j) continue; t=(s2[i1][j1]-s2[i1][j-1])+(s2[i][j1]-s2[i][j-1])+(s1[i1-1][j1]-s1[i][j1])+(s1[i1-1][j]-s1[i][j]); if(i1==i) { t=s2[i][j1]-s2[i][j-1]; } else if(j==j1) { t=s1[i1][j]-s1[i-1][j]; } s=max(s, t); } } } } cout<