Codeforces 545D - Queue

545D - Queue

思路:忍耐时间短的排在前面,从小到大排序,贪心模拟,记录当前等待时间,如过等待时间大于当前的这个人得忍耐时间,那么就把这个人扔到最后面,不要管他了(哼╭(╯^╰)╮,谁叫你那么没耐心呢),所以也就不用记录为他服务的时间。

代码:

 

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mem(a,b) memset((a),(b),sizeof(a))
const int N=1e5+5;
int t[N];

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    for(int i=0;i<n;i++)cin>>t[i];
    
    sort(t,t+n);
    int sum=0,cnt=0;
    for(int i=0;i<n;i++)
    {
        if(sum<=t[i])cnt++,sum+=t[i];
    }
    cout<<cnt<<endl;
    return 0;
}

 

posted @ 2017-08-14 15:25  Wisdom+.+  阅读(308)  评论(0编辑  收藏  举报