#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define pub push_back
#define pob pop_back
#define mpa make_pair
#define endl '\n'
#define BIT(i) ((1 << i))
const int maxn = 1010;
int n;
int a[maxn][maxn];
int dp[maxn][maxn];
int pre[maxn][maxn];
int L[maxn][maxn];
int R[maxn][maxn];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
#define code code
// freopen("code.INP","r",stdin);
// freopen("code.OUT","w",stdout);
cin >> n;
for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) cin >> a[i][j];
for(int s=2; s<=n*2; s++)
{
for(int i=1; i<=n; i++)
{
int j = s - i;
if(1 <= j && j <= n)
{
pre[i][j] = pre[i - 1][j + 1] + a[i][j];
}
}
}
memset(L, -0x3f, sizeof L);
memset(R, -0x3f, sizeof R);
memset(dp, -0x3f, sizeof dp);
dp[1][1] = a[1][1];
for(int s=3; s<=n*2; s++)
{
for(int i=1; i<=n; i++)
{
int j = s - i;
if(1 <= j && j <= n)
{
int val = max(dp[i - 1][j], dp[i][j - 1]);
L[i][j] = max(L[i - 1][j + 1], val - pre[i - 1][j + 1]);
}
}
for(int i=n; i>=1; i--)
{
int j = s - i;
if(1 <= j && j <= n)
{
int val = max(dp[i - 1][j], dp[i][j - 1]);
R[i][j] = max(R[i + 1][j - 1], val + pre[i][j]);
}
}
for(int i=1; i<=n; i++)
{
int j = s - i;
if(1 <= j && j <= n)
{
dp[i][j] = max(R[i][j] - pre[i - 1][j + 1], pre[i][j] + L[i][j]);
}
}
}
cout << dp[n][n];
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwdWIgcHVzaF9iYWNrCiNkZWZpbmUgcG9iIHBvcF9iYWNrCiNkZWZpbmUgbXBhIG1ha2VfcGFpcgojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIEJJVChpKSAoKDEgPDwgaSkpCmNvbnN0IGludCBtYXhuID0gMTAxMDsKaW50IG47CmludCBhW21heG5dW21heG5dOwppbnQgZHBbbWF4bl1bbWF4bl07CmludCBwcmVbbWF4bl1bbWF4bl07CmludCBMW21heG5dW21heG5dOwppbnQgUlttYXhuXVttYXhuXTsKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKICAgICNkZWZpbmUgY29kZSBjb2RlCi8vICAgIGZyZW9wZW4oImNvZGUuSU5QIiwiciIsc3RkaW4pOwovLyAgICBmcmVvcGVuKCJjb2RlLk9VVCIsInciLHN0ZG91dCk7CiAgICBjaW4gPj4gbjsKICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspIGZvcihpbnQgaj0xOyBqPD1uOyBqKyspIGNpbiA+PiBhW2ldW2pdOwogICAgZm9yKGludCBzPTI7IHM8PW4qMjsgcysrKQogICAgewogICAgICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBpbnQgaiA9IHMgLSBpOwogICAgICAgICAgICBpZigxIDw9IGogJiYgaiA8PSBuKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBwcmVbaV1bal0gPSBwcmVbaSAtIDFdW2ogKyAxXSArIGFbaV1bal07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBtZW1zZXQoTCwgLTB4M2YsIHNpemVvZiBMKTsKICAgIG1lbXNldChSLCAtMHgzZiwgc2l6ZW9mIFIpOwogICAgbWVtc2V0KGRwLCAtMHgzZiwgc2l6ZW9mIGRwKTsKICAgIGRwWzFdWzFdID0gYVsxXVsxXTsKICAgIGZvcihpbnQgcz0zOyBzPD1uKjI7IHMrKykKICAgIHsKICAgICAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgaW50IGogPSBzIC0gaTsKICAgICAgICAgICAgaWYoMSA8PSBqICYmIGogPD0gbikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaW50IHZhbCA9IG1heChkcFtpIC0gMV1bal0sIGRwW2ldW2ogLSAxXSk7CiAgICAgICAgICAgICAgICBMW2ldW2pdID0gbWF4KExbaSAtIDFdW2ogKyAxXSwgdmFsIC0gcHJlW2kgLSAxXVtqICsgMV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT1uOyBpPj0xOyBpLS0pCiAgICAgICAgewogICAgICAgICAgICBpbnQgaiA9IHMgLSBpOwogICAgICAgICAgICBpZigxIDw9IGogJiYgaiA8PSBuKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpbnQgdmFsID0gbWF4KGRwW2kgLSAxXVtqXSwgZHBbaV1baiAtIDFdKTsKICAgICAgICAgICAgICAgIFJbaV1bal0gPSBtYXgoUltpICsgMV1baiAtIDFdLCB2YWwgKyBwcmVbaV1bal0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBpbnQgaiA9IHMgLSBpOwogICAgICAgICAgICBpZigxIDw9IGogJiYgaiA8PSBuKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkcFtpXVtqXSA9IG1heChSW2ldW2pdIC0gcHJlW2kgLSAxXVtqICsgMV0sIHByZVtpXVtqXSArIExbaV1bal0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBkcFtuXVtuXTsKICAgIHJldHVybiAwOwp9