【题目链接】​​click here~~​

【题目大意】给你n个boy,n个girl ,然后W表示茶壶的最大容量,然后n个茶杯,每个都有不同的容量,要求boy的茶杯里的茶水是girl的两倍,且boy和boy容量一样,girl和girl 容量一样,问如何倒茶,最大化总的茶量

【解题思路】这道题本来很简单,第一次读题没读明白,以为每个茶杯的茶水都倒满了,然后一想不就是拿最大的计算吗。一交,直接WA,然后仔细读题,发现,每个茶杯的茶水可以选择的倒(坑~啊),那么既然boy和boy,girl和girl的茶水一样,那么只要分别找出最小的容量然后比较一下就可以,因为要求boy的茶杯里的茶水是girl的两倍,所以girl 的是最小的

代码:

#include <bits/stdc++.h>
using namespace std;
const int N=3*1e5+10;
double num[N];
int main()
{
int n,w;
while(scanf("%d%d",&n,&w)!=EOF)
{
for(int i=1; i<=2*n; ++i) scanf("%lf",&num[i]);
sort(num+1,num+1+2*n);
double res=min(num[1],num[n+1]/2);///排序玩后依次选择最小的
res=res*3*n;
res=min(res,1.0*w);
printf("%.6f\n",res);
}
return 0;
}

res=res*3*n=res*n+res*2*n;