#include <bits/stdc++.h>
using namespace std;
int n;
long long hares[3000 + 30][2];
long long ara1[3000 + 30], ara2[3000 + 30], ara3[3000 + 30];
long long func(int idx, int tt) {
  if (idx == n - 1) {
    if (tt) return ara2[idx];
    return ara1[idx];
  }
  if (hares[idx][tt] != -1) return hares[idx][tt];
  long long &ret = hares[idx][tt];
  if (tt)
    ret = max(ara2[idx] + func(idx + 1, 1), ara3[idx] + func(idx + 1, 0));
  else
    ret = max(ara1[idx] + func(idx + 1, 1), ara2[idx] + func(idx + 1, 0));
  return ret;
}
int main() {
  memset(hares, -1, sizeof(hares));
  scanf("%d", &n);
  for (int i = 0; i < (int)n; i++) scanf("%I64d", &ara1[i]);
  for (int i = 0; i < (int)n; i++) scanf("%I64d", &ara2[i]);
  for (int i = 0; i < (int)n; i++) scanf("%I64d", &ara3[i]);
  cout << max(0ll, func(0, 0)) << endl;
  return 0;
}
