http://codeforces.com/problemset/problem/735/B
题意:
输入数组元素个数n,从数组中分别选出n1、n2个数字,分为两组,算出两组平均数的和,求平均数的和的最大值。
代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n,a,b;
int arr[1000010];
double sum1=0;
double sum2=0;
int main()
{
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
{
cin>>arr[i];
}
if(a<b)
a^=b^=a^=b;
sort(arr,arr+n+1);
for(int i=n-b+1;i<=n;i++)
{
sum1+=arr[i];
}
for(int i=n-a-b+1;i<=n-b;i++)
{
sum2+=arr[i];
}
printf("%.8f\n",sum1/b+sum2/a);
return 0;
}