#include <bits/stdc++.h>
using namespace std;
int maxx(int a, int b, int c, int d) {
  int x = max(a, b);
  int y = max(c, d);
  return max(x, y);
}
int dp[3005][5][5];
int a[3005], b[3005], c[3005];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  for (int i = 0; i < n; i++) scanf("%d", &b[i]);
  for (int i = 0; i < n; i++) scanf("%d", &c[i]);
  if (n == 1) {
    printf("%d", a[0]);
    return 0;
  }
  if (n == 2) {
    printf("%d", max(a[0] + b[1], a[1] + b[0]));
    return 0;
  }
  dp[0][0][0] = a[0];
  dp[0][1][2] = b[0];
  dp[0][1][0] = -1000000000;
  dp[0][2][2] = -1000000000;
  for (int i = 1; i < n - 1; i++) {
    dp[i][0][0] = max(dp[i - 1][1][2], dp[i - 1][2][2]) + a[i];
    dp[i][1][2] = max(dp[i - 1][1][2], dp[i - 1][2][2]) + b[i];
    dp[i][1][0] = max(dp[i - 1][1][0], dp[i - 1][0][0]) + b[i];
    dp[i][2][2] = max(dp[i - 1][1][0], dp[i - 1][0][0]) + c[i];
  }
  dp[n - 1][0][0] = max(dp[n - 2][1][2], dp[n - 2][2][2]) + a[n - 1];
  dp[n - 1][1][0] = max(dp[n - 2][1][0], dp[n - 2][0][0]) + b[n - 1];
  printf("%d", max(dp[n - 1][0][0], dp[n - 1][1][0]));
  return 0;
}
