Code Forces 557 B. Pasha and Tea(水~)

来源:互联网 发布:青岛平面美工培训 编辑:程序博客网 时间:2024/06/04 22:21

Description
小明有n个女朋友和n个男朋友,现在这2*n个朋友要来小明家做客,小明想给他们泡茶喝,小明有2*n个茶杯,每个茶杯有一定容量,小明用容量为w的满水壶倒茶,倒茶的标准是男朋友的都一样,女朋友的都一样,且男朋友的茶是女朋友的两倍,问小明最多需要倒多少茶
Input
第一行两个整数n和w,第二行2*n个整数表示每个茶杯的容量
Output
输出小明最多需要倒多少茶
Sample Input
2 4
1 1 1 1
Sample Output
3
Solution
对茶杯容量排序,大的n个作为男朋友的,小的n个作为女朋友的,然后分别找出前n个min1和后n个的最小值min2,求出一个女朋友倒茶的最大值max,如果以这个最小值为标准给所有人倒茶的量已经大于w则最多倒w,否则最多倒1.5*n*max
Code

#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int a[222222];int main(){    int n,w;    while(scanf("%d%d",&n,&w)!=EOF)    {        for(int i=1;i<=2*n;i++)            scanf("%d",&a[i]);        sort(a+1,a+2*n+1);        int min1=a[n+1];        int min2=a[1];        min1=min2*2<=min1?min2*2:min1;        if((double)w-1.5*(double)n*(double)min1>0)            printf("%.6lf\n",1.5*(double)n*(double)min1);        else            printf("%d\n",w);    }       return 0;}
0 0
原创粉丝点击