#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
int a[210001],i,j,k,n,l,r,ans,m;
bool check(int x){
int i;
ll k=0;
for (i=1;i<=x;i++) k+=a[i];
for (i=x+1;i<=n;i++)
if (2LL*k<a[i]) return 0;else k+=a[i];
return 1;
}
int main(){
scanf("%d",&n);
for (i=1;i<=n;i++) scanf("%d",&a[i]);
sort(a+1,a+1+n);
for (l=1,r=n;l<r-1;){
m=(l+r)>>1;
if (check(m)) r=m;else l=m+1;
}
ans=(check(l))?l:r;
printf("%d\n",n-ans+1);
return 0;
}
./Main.cpp: In function ‘int main()’:
./Main.cpp:16:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&n);
^
./Main.cpp:17:38: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
for (i=1;i<=n;i++) scanf("%d",&a[i]);
^