LINK:http://codeforces.com/contest/735/problem/B
题意:两座容量分别为n1、n2的城市,有n个外来务工人员。这些人身上有一定的钱。
让两座城市的人均资产和最大,输出。
解法:贪心。最有钱的一定在需要人最少的城市,然后排第二个城市。其他舍弃。
#include <bits/stdc++.h>
using namespace std;
int cmp(int a, int b) {
return a > b;
}
int main() {
int a, b, n, p[100010];
cin >> n >> a >> b;
if(b < a)swap(a, b);
double ans = 0;
for(int i = 0; i < n; i++) {
scanf("%d", &p[i]);
}
sort(p, p + n, cmp);
double a1 = 0, a2 = 0;
for(int i = 0; i < a; i++) {
a1 += p[i];
}
for(int i = a; i < b + a; i++) {
a2 += p[i];
}
ans = (a1 / (a * 1.0)) + (a2 / (b * 1.0));
printf("%.8f\n", ans);
return 0;
}