CF-735B

来源:互联网 发布:北京大兴区行知小学 编辑:程序博客网 时间:2024/06/05 04:00

LINK:http://codeforces.com/contest/735/problem/B 
题意:两座容量分别为n1、n2的城市,有n个外来务工人员。这些人身上有一定的钱。 
让两座城市的人均资产和最大,输出。

解法:贪心。最有钱的一定在需要人最少的城市,然后排第二个城市。其他舍弃。

AC代码:

1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839404142
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;bool cmp(int a,int b){    if(a>b)        return 2;    else        return 0;//µÈ¼ÛÓÚ return a>b;}int main(){int n,a,b;double s[100005];while(~scanf("%d%d%d",&n,&a,&b)){    for(int i=0;i<n;i++)    scanf("%lf",&s[i]);    sort(s,s+n,cmp);   double  sum1=0;    for(int i=0;i<min(a,b);i++)    {        sum1+=s[i];    }    double ave1=sum1/(min(a,b));   double sum2=0;    for(int i=min(a,b);i<a+b;i++)    {        sum2+=s[i];    }    double ave2=sum2/(max(a,b));    printf("%.8f\n",ave1+ave2);}    return 0;}



Ubuntu


0 0
原创粉丝点击