FatMouse' Trade
来源:互联网 发布:ubuntu mysql my.cnf 编辑:程序博客网 时间:2024/06/06 17:23
FatMouse' Trade
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 47476 Accepted Submission(s): 16005
Problem Description
FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.
The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pounds of cat food. FatMouse does not have to trade for all the JavaBeans in the room, instead, he may get J[i]* a% pounds of JavaBeans if he pays F[i]* a% pounds of cat food. Here a is a real number. Now he is assigning this homework to you: tell him the maximum amount of JavaBeans he can obtain.
The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pounds of cat food. FatMouse does not have to trade for all the JavaBeans in the room, instead, he may get J[i]* a% pounds of JavaBeans if he pays F[i]* a% pounds of cat food. Here a is a real number. Now he is assigning this homework to you: tell him the maximum amount of JavaBeans he can obtain.
Input
The input consists of multiple test cases. Each test case begins with a line containing two non-negative integers M and N. Then N lines follow, each contains two non-negative integers J[i] and F[i] respectively. The last test case is followed by two -1's. All integers are not greater than 1000.
Output
For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of JavaBeans that FatMouse can obtain.
Sample Input
5 37 24 35 220 325 1824 1515 10-1 -1
Sample Output
13.33331.500
Author
CHEN, Yue
#include<iostream>#include<algorithm>using namespace std;struct room{ int catfood; int mousefood; double danwei;};int cmp(room a,room b){ return a.danwei>b.danwei;}int main(){ int M,N,i; room a[1000]; while(scanf("%d%d",&M,&N)) { double sum=0; if(M==-1 && N==-1) break; for(i=0;i<N;i++) { cin>>a[i].mousefood>>a[i].catfood; } for(i=0;i<N;i++) a[i].danwei=a[i].mousefood*1.0/a[i].catfood;//单位猫食,获得的物品量 sort(a,a+N,cmp);//降序排列 i=0; while(i<N && a[i].catfood<=M) { sum=sum+a[i].mousefood; M=M-a[i].catfood; i++; } if(i==N) { printf("%.3lf\n",sum);//准备的猫食可能有剩余 } else { sum=sum+a[i].mousefood*M*1.0/a[i].catfood;//此时准备的猫食以花干 printf("%.3lf\n",sum); } } return 0;}
0 0
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- Spring MVC数据绑定大全
- spring每个jar包的作用
- 如何给你的Android 安装文件(APK)瘦身
- Leetcode_Partition List
- jquery操作iframe父级页面元素的方法
- FatMouse' Trade
- CSS样式权重优先级
- ucenter与应用集成中如何处理用户注册与修改密码
- Struts之二 Action类
- 在linux上获得线程id的方法
- 嵌入式中的 *(volatile unsigned int *)0x500 解释
- 存储引擎
- openssl windows编译 32位&64位
- Ubuntu 14.04 下启动 VirtualBox里面的win7 出现vboxdrv模块加载失败的情况