#include <bits/stdc++.h>
using namespace std;
const long long oo = 1e18 + 7;
int n;
long long sum;
int a[5005];
long long dp[5005][5005];

long long solve(int l, int r) {
    if (l > r) return 0;
    if (dp[l][r] != -oo) return dp[l][r];
    int res = l - 1 + n - r;
    long long cur;
    if (res % 2 == 0) {
        cur = -oo;
        cur = max(cur, solve(l + 1, r) + a[l]);
        cur = max(cur, solve(l, r - 1) + a[r]);
    } else {
        cur = oo;
        cur = min(cur, solve(l + 1, r) - a[l]);
        cur = min(cur, solve(l, r - 1) - a[r]);
    }
    return dp[l][r] = cur;
}

main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    freopen("TEST.inp", "r", stdin);
    freopen("TEST.out", "w", stdout);
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        sum += a[i];
    }

    for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) dp[i][j] = -oo;
    long long ans = solve(1, n);

    cout << (sum + ans) / 2 << '\n';

    return 0;
}
