【题目链接】:click here~~
【题目大意】:
有n个人,每个人都有一个等待时间,如果对于当前的人来说总等待时间超过自己的等待时间,那么这个人就会失望,问换一下顺序,使失望的人最少,问最多有多少个人不失望。
【思路】:排一下序然后加然后与当前的比较。如此。。
代码:
/* * Problem: CodeForces 545D * Running time: 46MS * Complier: G++ * Author: herongwei * Create Time: 8:20 2015/9/17 星期四 */ #include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> using namespace std; const int N=1e5+10; int arr[N]; int main() { int t;scanf("%d",&t); for(int i=1; i<=t; ++i) { scanf("%d",&arr[i]); } sort(arr+1,arr+1+t); int ans=1; int temp=arr[1]; for(int i=2; i<=t; ++i) { if(arr[i]>=temp) { ans++; temp+=arr[i]; } } printf("%d\n",ans); }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u013050857/article/details/48516869