#include<bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#define int long long
#define maxn 2005
#define itachi ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
int n;
int a[maxn], pref[maxn];
int val[maxn][maxn];
int opt[maxn][maxn];
inline int get(int l, int r){
return pref[r] - pref[l-1];
}
void solve(int l, int r, int optl, int optr){
if(l > r) return;
int mid = (l + r) >> 1;
int best = -1;
int best_k = -1;
for(int k = optl; k <= min(mid-1, optr); k++){
int cur = min(val[1][k], val[k+1][mid]);
if(cur > best){
best = cur;
best_k = k;
}
}
val[1][mid] = get(1, mid) + best;
opt[1][mid] = best_k;
solve(l, mid-1, optl, best_k);
solve(mid+1, r, best_k, optr);
}
signed main(){
itachi
cin >> n;
for(int i = 1; i <= n; i++){
cin >> a[i];
pref[i] = pref[i-1] + a[i];
val[i][i] = a[i];
opt[i][i] = i;
}
for(int len = 2; len <= n; len++){
for(int l = n-len+1; l >= 1; l--){
int r = l + len - 1;
int L = opt[l][r-1];
int R = opt[l+1][r];
int best = -1;
int best_k = -1;
for(int k = L; k <= R; k++){
int cur = min(val[l][k], val[k+1][r]);
if(cur > best){
best = cur;
best_k = k;
}
}
val[l][r] = get(l, r) + best;
opt[l][r] = best_k;
}
}
cout << val[1][n] - get(1, n);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk8zLHVucm9sbC1sb29wcyIpCiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIG1heG4gMjAwNQojZGVmaW5lIGl0YWNoaSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG47CmludCBhW21heG5dLCBwcmVmW21heG5dOwppbnQgdmFsW21heG5dW21heG5dOwppbnQgb3B0W21heG5dW21heG5dOwoKaW5saW5lIGludCBnZXQoaW50IGwsIGludCByKXsKICAgIHJldHVybiBwcmVmW3JdIC0gcHJlZltsLTFdOwp9Cgp2b2lkIHNvbHZlKGludCBsLCBpbnQgciwgaW50IG9wdGwsIGludCBvcHRyKXsKICAgIGlmKGwgPiByKSByZXR1cm47CiAgICBpbnQgbWlkID0gKGwgKyByKSA+PiAxOwoKICAgIGludCBiZXN0ID0gLTE7CiAgICBpbnQgYmVzdF9rID0gLTE7CgogICAgZm9yKGludCBrID0gb3B0bDsgayA8PSBtaW4obWlkLTEsIG9wdHIpOyBrKyspewogICAgICAgIGludCBjdXIgPSBtaW4odmFsWzFdW2tdLCB2YWxbaysxXVttaWRdKTsKICAgICAgICBpZihjdXIgPiBiZXN0KXsKICAgICAgICAgICAgYmVzdCA9IGN1cjsKICAgICAgICAgICAgYmVzdF9rID0gazsKICAgICAgICB9CiAgICB9CgogICAgdmFsWzFdW21pZF0gPSBnZXQoMSwgbWlkKSArIGJlc3Q7CiAgICBvcHRbMV1bbWlkXSA9IGJlc3RfazsKCiAgICBzb2x2ZShsLCBtaWQtMSwgb3B0bCwgYmVzdF9rKTsKICAgIHNvbHZlKG1pZCsxLCByLCBiZXN0X2ssIG9wdHIpOwp9CgpzaWduZWQgbWFpbigpewogICAgaXRhY2hpCgogICAgY2luID4+IG47CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgY2luID4+IGFbaV07CiAgICAgICAgcHJlZltpXSA9IHByZWZbaS0xXSArIGFbaV07CiAgICAgICAgdmFsW2ldW2ldID0gYVtpXTsKICAgICAgICBvcHRbaV1baV0gPSBpOwogICAgfQoKICAgIGZvcihpbnQgbGVuID0gMjsgbGVuIDw9IG47IGxlbisrKXsKICAgICAgICBmb3IoaW50IGwgPSBuLWxlbisxOyBsID49IDE7IGwtLSl7CiAgICAgICAgICAgIGludCByID0gbCArIGxlbiAtIDE7CgogICAgICAgICAgICBpbnQgTCA9IG9wdFtsXVtyLTFdOwogICAgICAgICAgICBpbnQgUiA9IG9wdFtsKzFdW3JdOwoKICAgICAgICAgICAgaW50IGJlc3QgPSAtMTsKICAgICAgICAgICAgaW50IGJlc3RfayA9IC0xOwoKICAgICAgICAgICAgZm9yKGludCBrID0gTDsgayA8PSBSOyBrKyspewogICAgICAgICAgICAgICAgaW50IGN1ciA9IG1pbih2YWxbbF1ba10sIHZhbFtrKzFdW3JdKTsKICAgICAgICAgICAgICAgIGlmKGN1ciA+IGJlc3QpewogICAgICAgICAgICAgICAgICAgIGJlc3QgPSBjdXI7CiAgICAgICAgICAgICAgICAgICAgYmVzdF9rID0gazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFsW2xdW3JdID0gZ2V0KGwsIHIpICsgYmVzdDsKICAgICAgICAgICAgb3B0W2xdW3JdID0gYmVzdF9rOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IHZhbFsxXVtuXSAtIGdldCgxLCBuKTsKfQ==