#include <bits/stdc++.h>
using namespace std;
int mat[310][310];
int dp[610][310][310];
void setmax(int &a, int b) {
  if (b > a) a = b;
}
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      cin >> mat[i][j];
    }
  }
  for (int i = 0; i < 2 * n - 1; i++) {
    for (int j = 0; j < i + 1; j++) {
      if (i - j >= n || j >= n) continue;
      for (int k = 0; k < i + 1; k++) {
        if (i - k >= n || k >= n) continue;
        int ben = mat[j][i - j];
        if (k != j) {
          ben += mat[k][i - k];
        }
        if (i == 0) {
          dp[i][j][k] = ben;
          continue;
        }
        dp[i][j][k] = -1999999999;
        for (int dj = 0; dj < 2; dj++) {
          int nj = j - dj;
          if (nj >= 0 && nj < i) {
            for (int dk = 0; dk < 2; dk++) {
              int nk = k - dk;
              if (nk >= 0 && nk < i) {
                setmax(dp[i][j][k], dp[i - 1][nj][nk] + ben);
              }
            }
          }
        }
      }
    }
  }
  cout << dp[2 * n - 2][n - 1][n - 1] << endl;
}
