#include <bits/stdc++.h>
using namespace std;
int sgn(double x) { return (x > 1e-8) - (x < -1e-8); }
int count_bit(int x) { return x == 0 ? 0 : count_bit(x >> 1) + (x & 1); }
template <class T>
inline void ckmin(T &a, const T b) {
  if (b < a) a = b;
}
template <class T>
inline void ckmax(T &a, const T b) {
  if (b > a) a = b;
}
const int maxn = 3000 + 10;
int n, a[3][maxn];
int dp[maxn][2];
int main() {
  while (scanf("%d", &n) != EOF) {
    for (int i = 0; i < (n); ++i) scanf("%d", a[0] + i);
    for (int i = 0; i < (n); ++i) scanf("%d", a[1] + i);
    for (int i = 0; i < (n); ++i) scanf("%d", a[2] + i);
    dp[0][0] = a[0][0];
    dp[0][1] = a[1][0];
    for (int i = (1); i <= (n - 1); ++i) {
      dp[i][0] = max(dp[i - 1][0] + a[1][i], dp[i - 1][1] + a[0][i]);
      dp[i][1] = max(dp[i - 1][0] + a[2][i], dp[i - 1][1] + a[1][i]);
    }
    printf("%d\n", dp[n - 1][0]);
  }
  return 0;
}
