题目
原题链接:D. Queue
题意
一共n个人,每个人最多能等ni时间,且每个人完成服务的时间为他加上他前边的所有人的等待时间。问最多能服务多少个人。
第一道D题。开始没明白每个人服务需要多久,没做出来,看了看翻译才明白。
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,s[100001];
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&s[i]);
}
sort(s+1,s+n+1);
int ans=n;
long long sum=0;
for(int i=1;i<=n;i++){
if(sum<=s[i]){
sum+=s[i];
}else{
ans--;
}
}
printf("%d\n",ans);
return 0;
}