import numpy as np

import sys



n = int(eval(input()))

arr = np.array(list(map(int, input().split())))



arr.sort()

arr_cs = arr.cumsum()



ans = 0

for i in range(n - 1):

    if arr_cs[i] * 2 < arr[i + 1]:

        ans = i + 1

else:

    print((n - ans))
from itertools import accumulate



n = int(eval(input()))

arr = list(map(int, input().split()))



arr.sort()



# 1つ前までの累積和の2倍がその時点の要素の大きさに達しているかどうか

cumsum = list(accumulate(arr))



result = []

for x, y in zip(arr[1:], cumsum[:-1]):

    if x <= y * 2:

        result.append(True)

    else:

        result.append(False)



if all(result):

    ans = n

else:

    ans = result[::-1].index(False) + 1



print(ans)
import numpy as np
import sys

n = int(eval(input()))
arr = np.array(list(map(int, input().split())))
arr.sort()
arr_cs = arr.cumsum()
ans = 0
for i in range(n - 1):
    if arr_cs[i] * 2 < arr[i + 1]:
        ans = i + 1
else:
    print((n - ans))

from itertools import accumulate

n = int(eval(input()))
arr = list(map(int, input().split()))
arr.sort()
# 1つ前までの累積和の2倍がその時点の要素の大きさに達しているかどうか
cumsum = list(accumulate(arr))
result = []
for x, y in zip(arr[1:], cumsum[:-1]):
    if x <= y * 2:
        result.append(True)
    else:
        result.append(False)
if all(result):
    ans = n
else:
    ans = result[::-1].index(False) + 1
print(ans)

-import numpy as np -import sys +from itertools import accumulate -arr = np.array(list(map(int, input().split()))) +arr = list(map(int, input().split())) -arr_cs = arr.cumsum() -ans = 0 -for i in range(n - 1): -    if arr_cs[i] * 2 < arr[i + 1]: -        ans = i + 1 +# 1つ前までの累積和の2倍がその時点の要素の大きさに達しているかどうか +cumsum = list(accumulate(arr)) +result = [] +for x, y in zip(arr[1:], cumsum[:-1]): +    if x <= y * 2: +        result.append(True) +    else: +        result.append(False) +if all(result): +    ans = n -    print((n - ans)) +    ans = result[::-1].index(False) + 1 +print(ans)