Jafar has *n* cans of cola. Each can is described by two integers: remaining volume of cola *a*<sub class="lower-index">*i*</sub> and can's capacity *b*<sub class="lower-index">*i*</sub> (*a*<sub class="lower-index">*i*</sub>  ≤  *b*<sub class="lower-index">*i*</sub>).

Jafar has decided to pour all remaining cola into just 2 cans, determine if he can do this or not!
The first line of the input contains one integer *n* (2 ≤ *n* ≤ 100 000) — number of cola cans.

The second line contains *n* space-separated integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (0 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>) — volume of remaining cola in cans.

The third line contains *n* space-separated integers that *b*<sub class="lower-index">1</sub>, *b*<sub class="lower-index">2</sub>, ..., *b*<sub class="lower-index">*n*</sub> (*a*<sub class="lower-index">*i*</sub> ≤ *b*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>) — capacities of the cans.
In the first sample, there are already 2 cans, so the answer is "YES".
2
3 5
3 6
YES
3
6 8 9
6 10 12
NO
5
0 0 5 0 0
1 1 8 10 5
YES
4
4 1 0 3
5 2 2 3
YES
10
9 10 24 11 1 7 8 3 28 14
86 20 34 11 22 94 8 16 73 85
YES
4
25 35 7 31
70 37 43 35
YES
10
15 26 15 14 14 39 40 4 25 39
27 72 16 44 69 48 53 17 63 42
NO
5
22 5 19 16 32
26 10 43 38 37
NO
5
32 4 22 40 26
39 20 36 98 44
YES
6
18 25 3 10 13 37
38 73 19 35 24 37
YES
2
2 2
2 2
YES
2
2 5
2 5
YES
2
1000 1008
10000 2352
YES
5
1 2 3 4 5
1 2 3 4 11
YES
4
1 0 0 0
2 0 0 0
YES
2
0 0
1 2
YES
3
9 13 4
10 14 5
NO
2
0 0
1 1
YES
5
1 1 2 3 1
1 1 2 3 4
NO
2
0 0
0 0
YES
3
5 1 1
5 5 5
YES
#define _CRT_SECURE_NO_WARNINGS 1
#pragma GCC optimize(2)
#include<bits/stdc++.h>
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<vector>
#include<queue>
#define ls rt<<1
#define rs rt<<1|1
#define pb push_back
#define fi first
#define se second
#define yes puts("YES")
#define no puts("NO")
#define ios ios::sync_with_stdio(0);
#define rep(i,a,n) for (int i=a;i<n;i++)
#define per(i,a,n) for (int i=n-1;i>=a;i--)
#define pb push_back
#define aint(x) (x).begin(),(x).end()
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
typedef vector<int> VI;
const int N = 1e6+9 ,M = 1e6+1;
const int Maxn=1000010;
const LL inf = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + 7;
LL qp(LL x,LL y){LL ans=1;x%=mod;while(y){if(y&1)ans=ans*x%mod;x=x*x%mod;y>>=1;}return ans;}
LL inv(LL x){return qp(x,mod-2);}
///head
int n;
int a[N], b[N];
int main(){
    while(~scanf("%d" , &n)){
            LL ans = 0;
        for(int i = 1; i <= n ; i ++){
            scanf("%d" ,&a[i]);
            ans += (LL)a[i];
        }
        for(int i = 1; i <= n ; i ++){
            scanf("%d" ,&b[i]);
        }
        sort(b + 1, b + n + 1);
        if(ans <= b[n] + b[n-1])yes;
        else no;
    }


    return 0;
}

			  	 		  	 	 			   	 		 				