#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;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGxvbmcgbG9uZyBvbyA9IDFlMTggKyA3OwppbnQgbjsKbG9uZyBsb25nIHN1bTsKaW50IGFbNTAwNV07CmxvbmcgbG9uZyBkcFs1MDA1XVs1MDA1XTsKCmxvbmcgbG9uZyBzb2x2ZShpbnQgbCwgaW50IHIpIHsKICAgIGlmIChsID4gcikgcmV0dXJuIDA7CiAgICBpZiAoZHBbbF1bcl0gIT0gLW9vKSByZXR1cm4gZHBbbF1bcl07CiAgICBpbnQgcmVzID0gbCAtIDEgKyBuIC0gcjsKICAgIGxvbmcgbG9uZyBjdXI7CiAgICBpZiAocmVzICUgMiA9PSAwKSB7CiAgICAgICAgY3VyID0gLW9vOwogICAgICAgIGN1ciA9IG1heChjdXIsIHNvbHZlKGwgKyAxLCByKSArIGFbbF0pOwogICAgICAgIGN1ciA9IG1heChjdXIsIHNvbHZlKGwsIHIgLSAxKSArIGFbcl0pOwogICAgfSBlbHNlIHsKICAgICAgICBjdXIgPSBvbzsKICAgICAgICBjdXIgPSBtaW4oY3VyLCBzb2x2ZShsICsgMSwgcikgLSBhW2xdKTsKICAgICAgICBjdXIgPSBtaW4oY3VyLCBzb2x2ZShsLCByIC0gMSkgLSBhW3JdKTsKICAgIH0KICAgIHJldHVybiBkcFtsXVtyXSA9IGN1cjsKfQoKbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBmcmVvcGVuKCJURVNULmlucCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3BlbigiVEVTVC5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICBjaW4gPj4gbjsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgIHN1bSArPSBhW2ldOwogICAgfQoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgIGZvciAoaW50IGogPSAxOyBqIDw9IG47IGorKykgZHBbaV1bal0gPSAtb287CiAgICBsb25nIGxvbmcgYW5zID0gc29sdmUoMSwgbik7CgogICAgY291dCA8PCAoc3VtICsgYW5zKSAvIDIgPDwgJ1xuJzsKCiAgICByZXR1cm4gMDsKfQo=