#include <bits/stdc++.h>
using namespace std;
int arr[3002], brr[3002], crr[3002], dp[3002][2];
int n;
int call(int idx, int isleft) {
  if (idx == n - 1) {
    if (isleft) {
      return brr[idx];
    } else
      return arr[idx];
  }
  int &ret = dp[idx][isleft];
  if (ret != -1) return ret;
  if (isleft)
    ret = max(brr[idx] + call(idx + 1, true), crr[idx] + call(idx + 1, false));
  else
    ret = max(arr[idx] + call(idx + 1, true), brr[idx] + call(idx + 1, false));
  return ret;
}
int main() {
  while (cin >> n) {
    memset(dp, -1, sizeof(dp));
    for (int i = 0; i < n; ++i) cin >> arr[i];
    for (int i = 0; i < n; ++i) cin >> brr[i];
    for (int i = 0; i < n; ++i) cin >> crr[i];
    cout << call(0, 0) << endl;
  }
}
