CodeForces

来源:互联网 发布:安卓触屏校准软件 编辑:程序博客网 时间:2024/05/29 02:48

CodeForces - 735B   Urbanization

 题意:两个城市,第一个城市去n1个人,第二个城市去n2个人,每个人都有一定的资产,输出两个城市的平均资产最大和
  
 思路:贪心,对人的资产先从大到小排序,假设n1小,就把前n1大的人去第一个城市,就是让资产高的人去容纳人数较小的城市
#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;int a[100100];bool cmp(int a,int b){return a>b;}int main(void){int n,fir,sec;scanf("%d%d%d",&n,&fir,&sec);for(int i=1;i<=n;i++)    scanf("%d",&a[i]);sort(a+1,a+n+1,cmp);int Min=min(fir,sec);int Max=max(fir,sec);long long suma=0,sumi=0;int k=0;for(int i=1;i<=Min;i++)    suma+=a[i];int i=fir+sec;    while(k!=Max){sumi+=a[i];k++;i--;}  //printf("%d %d\n",suma,sumi);    double ans=double(suma)/double(Min)+double(sumi)/double(Max);printf("%lf\n",ans);return 0;   }