题意:给你一个序列,如果这个数比他前面所有数字的总和大于等于,那么他就是开心的,否则就是不开心,让你重新更改顺序,使开心的人最多
题解:首先,排序,对于开心的,留下来,不开心的,扔到最后,这还可能使后面开心的变多。
int a[100010];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
sort(a,a+n);
LL sum=0;
int ans=0;
for(int i=0;i<n;i++){
if(sum<=a[i]){
sum+=a[i];
ans++;
}
}
cout<<ans<<endl;
return 0;
}