CodeFoeces-545D

题目

原题链接:D. Queue

题意

一共n个人,每个人最多能等ni时间,且每个人完成服务的时间为他加上他前边的所有人的等待时间。问最多能服务多少个人。
第一道D题。开始没明白每个人服务需要多久,没做出来,看了看翻译才明白。

代码

#include
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;
}

你可能感兴趣的:(CodeFoeces-545D)