Codeforces Round #311 (Div. 2) B. Pasha and Tea

时间:2022-11-16 14:17:53

【题目链接】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;