#include <bits/stdc++.h>
using namespace std;
class LDeque {
public:
long long int difference(vector<int>& seq, int n) {
vector<vector<long long>> dp(n, vector<long long>(n));
for(int i = 0; i < n; ++i) dp[i][i] = seq[i];
for (int len = 2; len <= n; ++len) {
for (int l = 0; l + len - 1 < n; ++l) {
int r = l + len - 1;
dp[l][r] = max(seq[l] - dp[l+1][r], seq[r] - dp[l][r-1]);
}
}
return dp[0][n-1];
}
};
int main() {
int n;
cin >> n;
vector<int> seq(n);
for(int i = 0; i < n; ++i) cin >> seq[i];
LDeque obj;
cout << obj.difference(seq, n);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBMRGVxdWUgewpwdWJsaWM6Cglsb25nIGxvbmcgaW50IGRpZmZlcmVuY2UodmVjdG9yPGludD4mIHNlcSwgaW50IG4pIHsKCSAgICB2ZWN0b3I8dmVjdG9yPGxvbmcgbG9uZz4+IGRwKG4sIHZlY3Rvcjxsb25nIGxvbmc+KG4pKTsKCSAgICAKCSAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgKytpKSBkcFtpXVtpXSA9IHNlcVtpXTsKCQoJICAgIGZvciAoaW50IGxlbiA9IDI7IGxlbiA8PSBuOyArK2xlbikgewoJICAgICAgICBmb3IgKGludCBsID0gMDsgIGwgKyBsZW4gLSAxIDwgbjsgKytsKSB7CgkgICAgICAgIAlpbnQgciA9IGwgKyBsZW4gLSAxOwoJICAgICAgICAJZHBbbF1bcl0gPSBtYXgoc2VxW2xdIC0gZHBbbCsxXVtyXSwgc2VxW3JdIC0gZHBbbF1bci0xXSk7CgkgICAgICAgIH0KCSAgICB9CgkgICAgcmV0dXJuIGRwWzBdW24tMV07Cgl9Cgp9OwoKaW50IG1haW4oKSB7CglpbnQgbjsKCWNpbiA+PiBuOwoKCXZlY3RvcjxpbnQ+IHNlcShuKTsKCglmb3IoaW50IGkgPSAwOyBpIDwgbjsgKytpKSBjaW4gPj4gc2VxW2ldOwoJCglMRGVxdWUgb2JqOwoJY291dCA8PCBvYmouZGlmZmVyZW5jZShzZXEsIG4pOwoKCXJldHVybiAwOwp9