#include <bits/stdc++.h>
using namespace std;
int tu(int val) { return (1 << val); }
bool iset(int mask, int id) {
  if ((mask & tu(id)) != 0) return true;
  return false;
}
void doset(int &mask, int id) { mask |= tu(id); }
void dounset(int &mask, int id) { mask = mask & (~tu(id)); }
template <typename T>
string tos(T a) {
  stringstream ss;
  string ret;
  ss << a;
  ss >> ret;
  return ret;
}
vector<int> arr;
int main() {
  int n, va;
  while (cin >> n) {
    long long sum = 0;
    for (int(x) = (0); (x) < (n); (x)++) {
      scanf("%d", &va);
      sum += va;
    }
    arr.clear();
    for (int(x) = (0); (x) < (n); (x)++) {
      scanf("%d", &va);
      arr.push_back(va);
    }
    sort(arr.begin(), arr.end());
    long long can = 0;
    can += arr[n - 1];
    can += arr[n - 2];
    if (sum <= can)
      puts("YES");
    else
      puts("NO");
  }
  return 0;
}
