HDU 1.3.1 FatMouse' Trade
来源:互联网 发布:淘宝活动倒计时代码 编辑:程序博客网 时间:2024/06/10 01:59
FatMouse' Trade
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4921 Accepted Submission(s): 1476Problem 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
#include <stdio.h> #include <stdlib.h> int main() { int M, N; while (scanf("%d%d", &M, &N) != EOF) { int i, j, J[1000], F[1000], temp1; double ratio[1000], JavaBeans = 0, temp; if ((M == -1) && (N == -1)) { return 0; } for (i = 0; i<N; i++) { scanf("%d%d", &J[i], &F[i]); ratio[i] = (J[i] * 1.0) / F[i]; } for (i = 0; i<N; i++) { for (j = 0; j<N - i - 1; j++) { if (ratio[j]<ratio[j + 1]) { temp = ratio[j]; ratio[j] = ratio[j + 1]; ratio[j + 1] = temp; temp1 = F[j]; F[j] = F[j + 1]; F[j + 1] = temp1; temp1 = J[j]; J[j] = J[j + 1]; J[j + 1] = temp1; } } } for (i = 0; i<N; i++) { if (M >= F[i]) { JavaBeans = J[i] + JavaBeans; M = M - F[i]; } else { JavaBeans = JavaBeans + ratio[i] * M; break; } } printf("%.3lf\n", JavaBeans); } return 0; }
0 0
- HDU 1.3.1 FatMouse' Trade
- HDU 1.3.1 FatMouse' Trade
- 1.3.1 FatMouse trade
- HDU 1009 FatMouse' Trade
- hdu 1009 FatMouse' Trade
- hdu 1009 FatMouse' Trade
- HDU 1009 - FatMouse' Trade
- HDU-1009 FatMouse' Trade
- hdu 1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade
- hdu 1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade
- HDU--1009--FatMouse' Trade
- HDU 1.2.7 AC Me
- ORA-12838: cannot read/modify an object after modifying it in parallel
- HDU 1.2.8 Vowel Counting
- Android监听事件四种方法
- Web Service 那点事儿(2)—— 使用 CXF 开发 SOAP 服务
- HDU 1.3.1 FatMouse' Trade
- Android之来电秀实现(一)
- Rust hello world 语法讲解
- HDU 1.3.2 Tian Ji -- The Horse Racing
- 61-题目1076:N的阶乘
- 实用ListView加载提示工具类
- HDU 1.3.3 开门人和关门人
- iOS电池条颜色修改
- 自定义ImageLoader实现GridView加载图片