Code Forces 557 B. Pasha and Tea(水~)
2015-07-27 13:32
197 查看
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
小明有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; }
相关文章推荐
- poj 3928 Ping pong 树状数组
- Integer 变量A,B, 在不声明其它变量的情况下,将他们的值交换,如:A:=1; B:=2; 交换后, A=2, B=1,
- CAS4搭建HTTP环境
- linux修改文件权限
- Course Schedule II
- poj 3928 Ping pong 树状数组
- LeetCode Best Time to Buy and Sell Stock 买卖股票的最佳时机 (DP)
- linux初学(九)之linux文件系统
- 九度oj 1124
- linux初学(八)之使用fdisk进行磁盘管理
- poj 2251 Dungeon Master(三维BFS)(中等)
- [单调队列] hdu 3415 Max Sum of Max-K-sub-sequence
- 【leetcode-16】3Sum Closest(java)
- 提高ios开发效率
- _CrtIsValidHeapPointer 跨dll接口参数数据传递问题
- 7.27计划
- javascript中的闭包
- Poj 1201 差分约束问题 详解
- hdu 3008 Warcraft
- HDU 5074 Hatsune Miku (动态规划)