题意
总共有 w 克蛋糕,2n 个盘子,第 i 个盘子容量为 ai ,n 个女孩和 n 个男孩,男孩得到的是女孩得到的蛋糕的两倍,求他们得到蛋糕的最大值。
分析
把盘子从小到大排序,然后 女生得到的蛋糕总量是 n*min(最小的盘子,第n 1小的盘子/2,w/(3n))。 答案就是女生得到的蛋糕的3倍。
代码
代码语言:javascript复制#include<cstdio>
#include<algorithm>
using namespace std;
int n,a[1000005];
double w,ans;
int main(){
scanf("%d%lf",&n,&w);
for(int i=0;i<n*2;i )
scanf("%d",&a[i]);
sort(a,a n*2);
ans = min(1.5 * n * min(2*a[0], a[n]), w);
printf("%lf",ans);
return 0;
}