#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define fbo find_by_order
#define ook order_of_key
typedef long long ll;
typedef pair<ll,ll> ii;
typedef vector<int> vi;
typedef long double ld;
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pbds;
typedef set<int>::iterator sit;
typedef map<int,int>::iterator mit;
typedef vector<int>::iterator vit;
const ll INF = ll(1e18);
ll dp[5001][5001];
ll a[5001];
ll b[5001];
int n;
ll solve(int x, int y)
{
if(x == n && y == n) return 0;
int turn = (x+y)&1; //odd means P2's turn, even means P1's turn
if(dp[x][y] == -INF)
{
if(!turn)
{
ll ans = -INF;
if(x < n)
{
ans = max(ans, a[x]+solve(x+1,y));
}
if(y < n)
{
ans = max(ans, b[y]+solve(x,y+1));
}
dp[x][y] = ans;
}
else
{
ll ans = INF;
if(x < n)
{
ans = min(ans, -a[x]+solve(x+1,y));
}
if(y < n)
{
ans = min(ans, -b[y]+solve(x,y+1));
}
dp[x][y] = ans;
}
}
return dp[x][y];
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
for(int i = 0; i < 5001; i++)
{
for(int j = 0; j < 5001; j++)
{
dp[i][j] = -INF;
}
}
cin >> n;
for(int i = 0; i < n; i++) cin >> a[i];
for(int i = 0; i < n; i++) cin >> b[i];
cout << solve(0, 0) << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CiAKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZibyBmaW5kX2J5X29yZGVyCiNkZWZpbmUgb29rIG9yZGVyX29mX2tleQogCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHBhaXI8bGwsbGw+IGlpOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOyAKdHlwZWRlZiB0cmVlPGludCwgbnVsbF90eXBlLCBsZXNzPGludD4sIHJiX3RyZWVfdGFnLCB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+IHBiZHM7CnR5cGVkZWYgc2V0PGludD46Oml0ZXJhdG9yIHNpdDsKdHlwZWRlZiBtYXA8aW50LGludD46Oml0ZXJhdG9yIG1pdDsKdHlwZWRlZiB2ZWN0b3I8aW50Pjo6aXRlcmF0b3Igdml0OwogCmNvbnN0IGxsIElORiA9IGxsKDFlMTgpOwpsbCBkcFs1MDAxXVs1MDAxXTsKbGwgYVs1MDAxXTsKbGwgYls1MDAxXTsKaW50IG47IAogCmxsIHNvbHZlKGludCB4LCBpbnQgeSkKewoJaWYoeCA9PSBuICYmIHkgPT0gbikgcmV0dXJuIDA7CglpbnQgdHVybiA9ICh4K3kpJjE7IC8vb2RkIG1lYW5zIFAyJ3MgdHVybiwgZXZlbiBtZWFucyBQMSdzIHR1cm4KCWlmKGRwW3hdW3ldID09IC1JTkYpCgl7CgkJaWYoIXR1cm4pCgkJewoJCQlsbCBhbnMgPSAtSU5GOwoJCQlpZih4IDwgbikKCQkJewoJCQkJYW5zID0gbWF4KGFucywgYVt4XStzb2x2ZSh4KzEseSkpOwoJCQl9CgkJCWlmKHkgPCBuKQoJCQl7CgkJCQlhbnMgPSBtYXgoYW5zLCBiW3ldK3NvbHZlKHgseSsxKSk7CgkJCX0KCQkJZHBbeF1beV0gPSBhbnM7CgkJfQoJCWVsc2UKCQl7CgkJCWxsIGFucyA9IElORjsKCQkJaWYoeCA8IG4pCgkJCXsKCQkJCWFucyA9IG1pbihhbnMsIC1hW3hdK3NvbHZlKHgrMSx5KSk7CgkJCX0KCQkJaWYoeSA8IG4pCgkJCXsKCQkJCWFucyA9IG1pbihhbnMsIC1iW3ldK3NvbHZlKHgseSsxKSk7CgkJCX0KCQkJZHBbeF1beV0gPSBhbnM7CgkJfQoJfQoJcmV0dXJuIGRwW3hdW3ldOwp9CQogCmludCBtYWluKCkKewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsKCWZvcihpbnQgaSA9IDA7IGkgPCA1MDAxOyBpKyspCgl7CgkJZm9yKGludCBqID0gMDsgaiA8IDUwMDE7IGorKykKCQl7CgkJCWRwW2ldW2pdID0gLUlORjsKCQl9Cgl9CgljaW4gPj4gbjsKCWZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIGNpbiA+PiBhW2ldOwoJZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgY2luID4+IGJbaV07Cgljb3V0IDw8IHNvbHZlKDAsIDApIDw8ICdcbic7Cn0KIA==