#include <bits/stdc++.h>
using namespace std;
long long int M = 1e9 + 7;
long long int n, k, m;
long long int x, y, z, q, u, a1, l, r, ax, cx, ay, by, cy, ql, qr;
vector<long long int> v;
long long int d, d1;
long long int a[1000007];
long long int gh[15][100007];
long long int b[1000007];
long long int f[1000007];
long long int tot;
long long int dp1[1000007];
long long int dp[100007][3][2];
int main() {
  cin >> n;
  long long int a[n + 1], b[n + 1], c[n + 1];
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 1; i <= n; i++) cin >> b[i];
  for (int i = 1; i <= n; i++) cin >> c[i];
  for (int i = 1; i <= n; i++) {
    if (i == 1) {
      dp[i][0][0] = a[i];
      dp[i][1][0] = 0;
      dp[i][1][1] = b[i];
    } else {
      if (i > 2)
        dp[i][0][0] = a[i] + max(dp[i - 1][1][1], dp[i - 1][2][0]);
      else
        dp[i][0][0] = a[i] + dp[i - 1][1][1];
      if (i > 2)
        dp[i][1][0] = b[i] + max(dp[i - 1][0][0], dp[i - 1][1][0]);
      else
        dp[i][1][0] = b[i] + dp[i - 1][0][0];
      if (i == n)
        dp[i][1][1] = 0;
      else if (i > 2)
        dp[i][1][1] = b[i] + max(dp[i - 1][2][0], dp[i - 1][1][1]);
      else
        dp[i][1][1] = b[i] + dp[i - 1][1][1];
      if (i == n)
        dp[i][2][0] = 0;
      else if (i == 2)
        dp[i][2][0] = c[i] + dp[i - 1][0][0];
      else
        dp[i][2][0] = c[i] + max(dp[i - 1][0][0], dp[i - 1][1][0]);
    }
  }
  long long int c1 = max({dp[n][0][0], dp[n][1][0]});
  if (n == 1) c1 = a[1];
  cout << c1;
}
