////這個題用快排測試數據都不過,TLE,所以只能用sort排序(我也是醉了),排完序之後,定義s=0,讓s與a[i]比較,如果s<=a[i],就讓sum++,並且讓s的值更新爲s+a[i],同時利用循環,這是一個比較省時的很好的想法,比用兩個for循環好,但是由於測試數據太大,兩個for只會TLE(我用這個方法做了一遍,結果不是TLE,而是WA,媽呀!感覺做的挺對的,爲什麼WA呢,到底哪裏錯了,求抱大腿!
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n, a[100010];
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
sort(a,a+n);
int sum=0, s=0;
for(int i=0; i<n; i++)
{
if(s<=a[i])
{
s=s+a[i];
sum++;
}
}
printf("%d\n", sum);
return 0;
}