#include <bits/stdc++.h>
using namespace std;
int a[101][101];
int mid[101];
int d[101][101];
char prev_[101][101];
int main() {
  int n;
  scanf("%d", &n);
  int i;
  int sum = 0;
  for (i = 0; i < n - 1; i++) {
    scanf("%d", &a[0][i]);
  }
  for (i = 0; i < n - 1; i++) {
    scanf("%d", &a[1][i]);
  }
  int min_ = 100000000, index_min = -1;
  for (i = 0; i < n; i++) {
    scanf("%d", &mid[i]);
  }
  for (i = 0; i < 2; i++) {
    int j;
    for (j = 0; j < n; j++) {
      d[i][j] = 100000000;
      prev_[i][j] = -1;
    }
  }
  d[0][0] = 0;
  for (i = 0; i < 2; i++) {
    int j;
    for (j = 0; j < n; j++) {
      if ((i == 0) && (j == 0)) {
        continue;
      }
      if (j - 1 >= 0) {
        if (j != 0) {
          if (d[i][j] > d[i][j - 1] + a[i][j - 1]) {
            d[i][j] = d[i][j - 1] + a[i][j - 1];
            prev_[i][j] = 'L';
          }
        }
      }
      if (i - 1 >= 0) {
        if (d[i][j] > d[i - 1][j] + mid[j]) {
          d[i][j] = d[i - 1][j] + mid[j];
          prev_[i][j] = 'U';
        }
      }
    }
  }
  sum += d[1][n - 1];
  i = 1;
  int j = n - 1;
  while (prev_[i][j] != -1) {
    if (prev_[i][j] == 'L') {
      j--;
    } else {
      if (prev_[i][j] == 'U') {
        i--;
        index_min = j;
        break;
      }
    }
  }
  mid[index_min] = 100000000;
  for (i = 0; i < 2; i++) {
    int j;
    for (j = 0; j < n; j++) {
      d[i][j] = 100000000;
    }
  }
  d[0][0] = 0;
  for (i = 0; i < 2; i++) {
    int j;
    for (j = 0; j < n; j++) {
      if ((i == 0) && (j == 0)) {
        continue;
      }
      if (j - 1 >= 0) {
        if (j != 0) {
          d[i][j] = min(d[i][j], d[i][j - 1] + a[i][j - 1]);
        }
      }
      if (i - 1 >= 0) {
        d[i][j] = min(d[i][j], d[i - 1][j] + mid[j]);
      }
    }
  }
  sum += d[1][n - 1];
  printf("%d", sum);
  return 0;
}
