CodeFoeces-735B

2018-03-12  本文已影响0人  ss5smi

题目

原题链接:B. Urbanization

题意

有n个居民,每个人具有自身的财富值,先要分成两座城市,分别有n1和n2人。问怎么分才能让两座城市的平均财富值之和最大。

代码

#include<bits/stdc++.h>
using namespace std;
int main() {
    int n,n1,n2,s[100000];
    cin>>n>>n1>>n2;
    for(int i=0;i<n;i++){
        cin>>s[i];
    }
    sort(s,s+n);
    double sum1=0,sum2=0;
    int i=n-1,maxx=max(n1,n2),minn=min(n1,n2);
    while(minn--){
        sum1+=s[i--];
    }
    while(maxx--){
        sum2+=s[i--];
    }
    maxx=max(n1,n2),minn=min(n1,n2);
    printf("%.8lf\n",sum1/(minn*1.0)+sum2/(maxx*1.0));
    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读