#include <bits/stdc++.h>   using namespace std;   const int N = 300010;   const int M = 1000010;   const int MOD = 1000000007;   const int INF = 2e9;   const double eps = 1e-8;   const double PI = acos(-1.0);   int fx[] = {1, -1, 0, 0};   int fy[] = {0, 0, 1, -1};   int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }   int lcm(int x, int y) {     x /= gcd(x, y);     return x * y;   }   int Min(int a, int b) { return a < b ? a : b; }   int Max(int a, int b) { return a > b ? a : b; }   bool prime[M + 5], isprime[M + 5];   vector<int> v;   int n, m, q, cs, ar[123456];   void sieve() {     v.push_back(2);     prime[1] = 1;     int limit = (int)sqrt(M);     for (int i = 4; i <= M; i += 2) prime[i] = 1;     for (int i = 3; i <= M; i += 2) {       if (!prime[i]) {         v.push_back(i);         if (i <= limit) {           for (int j = i * i; j <= M; j += 2 * i) prime[j] = 1;         }       }     }   }   int br[123456];   int main() {     long long n, tot = 0;     cin >> n;     for (int i = 0; i < n; i++) {       cin >> ar[i];       tot += ar[i];     }     for (int i = 0; i < n; i++) cin >> br[i];     sort(br, br + n);     long long a = br[n - 1], b = br[n - 2];     if (tot <= a + b)       cout <<  YES ;     else       cout <<  NO ;     return 0;   }   