LINK:http://codeforces.com/contest/735/problem/B
题意:两座容量分别为n1、n2的城市,有n个外来务工人员。这些人身上有一定的钱。
让两座城市的人均资产和最大,输出。
解法:贪心。最有钱的一定在需要人最少的城市,然后排第二个城市。其他舍弃。
AC代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
#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;
}
|
2189

被折叠的 条评论
为什么被折叠?



