题目描述
苏西小朋友和她的妈妈正在超市里购物,看着收银处排着的长长的队伍,她就想如何可以提升总体的服务质量呢?ios
已知,如今有n我的正在排队等待结帐,每一个人结帐所花的时间均可能是不一样的,第 i 我的的结帐时间为ti。算法
若是一我的在队伍中的等待时间超过了他本身结帐所花的时间,那么他就会很不满意。ide
一我的在队伍中的等待时间等于他前面全部人结帐所花的时间的总和。spa
苏西认为,若是咱们合理安排队伍中人群的结帐次序,就可使得更多的人可以感到满意。3d
请问,可以感到满意的人数最可能是多少。code
输入格式
第一行包含整数n。blog
第二行包含n个整数ti,表示队列中的每一个人结帐所需的时间。排序
输出格式
一个整数,表示可以感到满意的最大人数。队列
数据范围
1≤n≤105
1≤ti≤109ci
样例
输入样例: 5 15 2 1 5 3 输出样例: 4
算法1
看样例 就是排序,而后按照题意找出 前面数之和不大于本身的数字
注意和是LONG LONG 就交了一发试试 AC
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 5 using namespace std; 6 7 vector<int> v; 8 9 10 int main() 11 { 12 int n; 13 cin >> n; 14 for(int i =0;i <n;i++){ 15 int t; 16 cin >> t; 17 v.push_back(t); 18 } 19 20 sort(v.begin(),v.end()); 21 long long sum = 0; int count = 0; 22 for (int i = 0; i < v.size(); i++) 23 { 24 if (v[i] >= sum) { 25 count++; 26 sum += v[i]; 27 } 28 } 29 30 cout << count << endl; 31 32 return 0; 33 } 34 35 36 做者:defddr 37 连接:https://www.acwing.com/solution/acwing/content/2205/ 38 来源:AcWing 39 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。