题目描述
苏西小朋友和她的妈妈正在超市里购物,看着收银处排着的长长的队伍,她就想如何能够提高整体的服务质量呢?
已知,现在有n个人正在排队等待结账,每个人结账所花的时间都可能是不同的,第 i 个人的结账时间为titi。
如果一个人在队伍中的等待时间超过了他自己结账所花的时间,那么他就会很不满意。
一个人在队伍中的等待时间等于他前面所有人结账所花的时间的总和。
苏西认为,如果我们合理安排队伍中人群的结账次序,就可以使得更多的人能够感到满意。
请问,能够感到满意的人数最多是多少。
输入格式
第一行包含整数n。
第二行包含n个整数titi,表示队列中的每个人结账所需的时间。
输出格式
一个整数,表示能够感到满意的最大人数。
数据范围
$n<=10^5$
玄学过题
不知道题目没描述清楚还是怎样
加个else的话就表示不满意的人就不结账了?
不知道什么问题昂
C++ 代码
#include<iostream>
#include<algorithm>
int main()
{
int i,n,a[100001],ans;
long long sum=0;
scanf("%d",&n);
ans=n; //假设大家都满意
for(i=0;i<n;i++)
scanf("%d",&a[i]);
std::sort(a,a+n);
for(i=0;i<n;i++)
{
if(sum>a[i])
ans--;
else //就是这里
sum+=a[i];
}
printf("%d",ans);
return 0;
}
%%%
感觉他的意思就是不满意就走了,就不结账了(感觉题目没写清楚)