#include <bits/stdc++.h>
using namespace std;
int st[3][60];
int acum[3][60];
int distl[3][60];
int distr[3][60];
int av[60];
int n;
int main() {
  scanf("%d", &n);
  for (int i = 1; i < n; i++) scanf("%d", &st[0][i]);
  for (int i = 1; i < n; i++) scanf("%d", &st[1][i]);
  for (int i = 1; i <= n; i++) scanf("%d", &av[i]);
  distl[1][0] = 0;
  distl[1][1] = 0;
  distl[0][1] = 0;
  distl[0][0] = 0;
  for (int i = 2; i <= n; i++) distl[0][i] = distl[0][i - 1] + st[0][i - 1];
  for (int i = 2; i <= n; i++) distl[1][i] = distl[1][i - 1] + st[1][i - 1];
  distr[1][n + 1] = 0;
  distr[1][n] = 0;
  distr[0][n] = 0;
  distr[0][n + 1] = 0;
  for (int i = n - 1; i >= 0; i--) distr[0][i] = distr[0][i + 1] + st[0][i];
  for (int i = n - 1; i >= 0; i--) distr[1][i] = distr[1][i + 1] + st[1][i];
  int best = 0x3f3f3f3f;
  for (int i = n; i >= 1; i--) {
    int go = distr[1][i] + av[i] + distr[0][1] - distr[0][i];
    for (int j = 1; j <= n; j++) {
      if (j == i) continue;
      int ret = distl[0][j] + av[j] + distl[1][n] - distl[1][j];
      int ans = go + ret;
      best = ((best) < (ans) ? (best) : (ans));
    }
  }
  printf("%d\n", best);
  return 0;
}
