#include #include using namespace std; #define NMAX 1005 int a[NMAX][NMAX],n,sol = -1000000000; int d[NMAX],stanga[NMAX],dreapta[NMAX]; int main () { int i,j; // freopen("a.in","r",stdin); // freopen("a.out","w",stdout); scanf("%d",&n); for(i = 1; i <= n; i++) for(j = 1; j <= n; j++) scanf("%d",&a[i][j]); for(i = 1; i <= n; i++) { for(j = 1; j <= n; j++) d[j] = a[i][j] + max(d[j],0); for(j = 1; j <= n; j++) dreapta[j] = max(d[j],dreapta[j - 1] + a[i][j]); for(j = n; j >= 1; j--) stanga[j] = max(d[j], stanga[j + 1] + a[i][j]); for(j = 1; j <= n; j++) { d[j] = max(d[j], stanga[j]); d[j] = max(d[j], dreapta[j]); sol = max(sol, d[j]); } } printf("%d\n",sol); return 0; }