#include <bits/stdc++.h>
using namespace std;
int a[200];
int b[200];
int h[100];
int dp[5001][3][51];
int main() {
  int n;
  scanf("%d", &n);
  int i, j, k;
  memset(h, 0, sizeof(h));
  memset(a, 0, sizeof(a));
  memset(b, 0, sizeof(b));
  for (j = 1; j <= n - 1; j++) scanf("%d", a + j);
  for (j = 1; j <= n - 1; j++) scanf("%d", b + j);
  for (i = 1; i <= n; i++) {
    scanf("%d", h + i);
  }
  memset(dp, 0, sizeof(dp));
  dp[0][1][1] = 1;
  for (i = 1; i <= 2; i++) {
    for (j = 1; j <= n; j++) {
      if (i == 1 && j == 1) {
        dp[h[1]][i + 1][j] = dp[0][i][j];
        dp[a[1]][i][j + 1] = dp[0][i][j];
        continue;
      }
      for (k = 0; k <= 5000; k++) {
        if (dp[k][i][j] != 0) {
          if (i == 1) {
            if (k + a[j] <= 5000 && j <= n - 1)
              ;
            { dp[k + a[j]][i][j + 1] += dp[k][i][j]; }
          }
          if (i == 2) {
            if (k + b[j] <= 5000 && j <= n - 1)
              ;
            { dp[k + b[j]][i][j + 1] += dp[k][i][j]; }
          }
          if (k + h[j] <= 5000 && i == 1) {
            dp[k + h[j]][i + 1][j] += dp[k][i][j];
          }
        }
      }
    }
  }
  int cnt = 0;
  int ans = 0;
  for (k = 0; k <= 5000; k++) {
    if (dp[k][2][n] == 1 && cnt < 2) {
      cnt++;
      ans += k;
    } else if (dp[k][2][n] >= 2 && cnt == 0) {
      ans = k * 2;
      break;
    } else if (dp[k][2][n] >= 2 && cnt == 1) {
      ans += k;
      cnt++;
    }
    if (cnt >= 2) break;
  }
  printf("%d\n", ans);
}
