n=input()
times = input().split(' ')
times = list(map(int, times))
times.sort()
wait = 0
count = 0
for i in range(len(times)):
if times[i] >= wait:
wait += times[i]
count+=1
print(count)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,sum,c=1;
cin >> n;
vector<int> a(n);
for(int &it:a) cin >> it;
sort(a.begin(),a.end());
sum= a.front();
//for(int &it:a) cout << it <<' ';
for(int i=1; i<n;){
auto it= lower_bound(a.begin()+i,a.end(),sum);
//cout << i << endl;
if(it==a.end()) break;
i=it-a.begin();
c++;
sum +=a[i];
}
cout << c;
}
1543B - Customising the Track | 1337A - Ichihime and Triangle |
1366A - Shovels and Swords | 919A - Supermarket |
630C - Lucky Numbers | 1208B - Uniqueness |
1384A - Common Prefixes | 371A - K-Periodic Array |
1542A - Odd Set | 1567B - MEXor Mixup |
669A - Little Artem and Presents | 691B - s-palindrome |
851A - Arpa and a research in Mexican wave | 811A - Vladik and Courtesy |
1006B - Polycarp's Practice | 1422A - Fence |
21D - Traveling Graph | 1559B - Mocha and Red and Blue |
1579C - Ticks | 268B - Buttons |
898A - Rounding | 1372B - Omkar and Last Class of Math |
1025D - Recovering BST | 439A - Devu the Singer and Churu the Joker |
1323A - Even Subset Sum Problem | 1095A - Repeating Cipher |
630F - Selection of Personnel | 630K - Indivisibility |
20B - Equation | 600B - Queries about less or equal elements |