Jafar has n cans of cola. Each can is described by two integers: remaining volume of cola a_{i} and can's capacity b_{i} (a_{i}  ≤  b_{i}).

Jafar has decided to pour all remaining cola into just 2 cans, determine if he can do this or not!


-----Input-----

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_1, a_2, ..., a_{n} (0 ≤ a_{i} ≤ 10^9) — volume of remaining cola in cans.

The third line contains n space-separated integers that b_1, b_2, ..., b_{n} (a_{i} ≤ b_{i} ≤ 10^9) — capacities of the cans.


-----Output-----

Print "YES" (without quotes) if it is possible to pour all remaining cola in 2 cans. Otherwise print "NO" (without quotes).

You can print each letter in any case (upper or lower).


-----Examples-----
Input
2
3 5
3 6

Output
YES

Input
3
6 8 9
6 10 12

Output
NO

Input
5
0 0 5 0 0
1 1 8 10 5

Output
YES

Input
4
4 1 0 3
5 2 2 3

Output
YES



-----Note-----

In the first sample, there are already 2 cans, so the answer is "YES".

Difficulty: interview

Starter code:

Solutions:
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
s = sum(a)

mn = max(b)
b.remove(mn)
mn += max(b)

if mn >= s:
    print("YES")
else:
    print("NO")

n = int(input())
a = [int(x) for x in input().split()]
b = sorted([int(x) for x in input().split()])
if sum(a) <= b[-1] + b[-2]:
    print('YES')
else:
    print('NO')


import math, functools as ft, itertools as it

n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
b.sort()
q = b[-1] + b[-2]
print('YES' if sum(a) <= q else 'NO')

n = int(input())
a = list(map(int, input().split()))
b= sorted(list(map(int, input().split())))
if sum(a) <= b[-1] + b[-2]:
    print('YES')
else:
    print('NO')

def main():
    read = lambda: tuple(map(int, input().split()))
    n = read()[0]
    a = read()
    b = sorted(read())
    
    sm = sum(a)
    
    if sm <= b[-1] + b[-2]:
        print("YES")
    else:
        print("NO")
   
main()


n = int(input())

av = list(map(int,input().strip().split(' ')))
bv = list(map(int,input().strip().split(' ')))

if sum(av) <= sum(sorted(bv)[-2:]):
	print('YES')
else:
	print('NO')

read = lambda: map(int, input().split())
n = int(input())
a = sum(read())
b = sorted(read())
if b[-1] + b[-2] >= a:
    print('YES')
else:
    print('NO')

def ii():
    return int(input())
def mi():
    return map(int, input().split())
def li():
    return list(mi())

n = ii()
a = li()
b = li()
b.sort()
print('YES' if sum(a) <= b[-1] + b[-2] else 'NO')

n=int(input())
l1=[int(x) for x in input().split()]
l2=[int(x) for x in input().split()]
l2.sort()
if sum(l1)<=(l2[-1]+l2[-2])  :
    print("YES")
else:
    print("NO")

n = int(input())

a = [int(i) for i in input().split(" ")]
b = [int(i) for i in input().split(" ")]
b = sorted(b)

if sum(a) > b[-1] + b[-2]:
    print("NO")
else:
    print("YES")

n = int(input())
a = [int(i) for i in input().split()]
b = [int(i) for i in input().split()]
b.sort()
if b[-1] + b[-2] >= sum(a):
    print('YES')
else:
    print('NO')

n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))

A = sum(a)
B = sum(sorted(b)[-2:])

print(('NO', 'YES')[A <= B])


n = int(input())
a = [int(i) for i in input().split()]
b = [int(i) for i in input().split()]
s = sum(a)
b.sort(reverse = True)
if b[0] + b[1] >= s:
    print('YES')
else:
    print('NO')


n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
x = max(b)
del b[b.index(max(b))]
if sum(a) <= x + max(b):
    print('YES')
else:
    print('NO')


n=int(input())
m=list(map(int,input().split()))
p=list(map(int,input().split()))
a=max(p)
p.remove(a)
b=max(p)
s=sum(m)
if s>a+b:
    print('NO')
else:
    print('YES')

n = int(input())
a = [int(x) for x in input().split()]
b = [int(x) for x in input().split()]

b.sort()
s = b[-1] + b[-2]
if sum(a) > s:
    print('NO')
else:
    print('YES')




n=int(input())
l1 = list(map(int, input().split()))
l2 = list(map(int, input().split()))
sm = sum(l1)
mx1 = max(l2)
l2.remove(mx1)
mx2 = max(l2)
if sm <= mx1+mx2:
    print("YES")
else:
    print("NO")

# -*- coding: utf-8 -*-

import math
import collections
import bisect
import heapq
import time
import random
import itertools
import sys

"""
created by shhuan at 2017/11/17 22:35

"""

N = int(input())

A = [int(x) for x in input().split()]
B = [int(x) for x in input().split()]

left = sum(A)
B.sort(reverse=True)

if left <= B[0] + B[1]:
    print("YES")
else:
    print("NO")

n = int(input())
vols = list(map(int, input().split()))
caps = map(int, input().split())
max = list(sorted(caps))[-2:]
if sum(vols) <= sum(max):
	print("YES")
else:
	print("NO")

# coding: utf-8

import heapq


def main():
    N = int(input())
    r = sum(map(int, input().split()))
    hq = []
    for b in map(int, input().split()):
        heapq.heappush(hq, -b)
    room = heapq.heappop(hq) + heapq.heappop(hq)
    if -room >= r:
        return "YES"
    return "NO"



def __starting_point():
    print(main())

__starting_point()

n=int(input())
x=list(map(int,input().split()))
y=list(map(int,input().split()))
y.sort()
if sum(x)<=y[-1]+y[-2]:
	print("YES")
else:
	print("NO")

n = int( input() )

a = list( map( int, input().split() ) )
b = list( map( int, input().split() ) )

b = sorted( b )

if b[-1] + b[-2] >= sum(a):
    print( "YES" )
else:
    print( "NO" )


n=int(input())
a=sum(list(map(int,input().split())))
b=sorted(list(map(int,input().split())))
if b[-1]+b[-2] >= a:
    print('YES')
else:
    print('NO')

n = int(input())
a = []
b = []
a = input().split()
b = input().split()
for i in range(n):
    a[i] = int(a[i])
    b[i] = int(b[i])
b.sort()
if b[n-1]+b[n-2] >= sum(a):
    print('YES')
else:
    print('NO')

n = int(input())
cans = []
cola = [int(x) for x in input().split()]
cans = sorted([int(x) for x in input().split()])
c = sum(cola)
if c <= cans[-1] + cans[-2]:
    print('YES')
else:
    print('NO')