FatMouse' Trade
来源:互联网 发布:淘宝站外活动报名 编辑:程序博客网 时间:2024/06/10 19:56
FatMouse' Trade
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 13 Accepted Submission(s) : 6
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
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
程序:
#include <iostream> #include <iomanip> using namespace std; struct Trade { int javaBean, food; double rate; }; int main() { const int max = 1001; int catFood, N; int i, j, f, maxIdx; double r, get; Trade record[max], tmp; while (cin >> catFood >> N && (catFood != -1) && (N != -1)) { i = get = 0; while (i < N) { cin >> j >> f; if (j == 0) r = 0.0; else if (f == 0) r = static_cast<double>(max); else r = 1.0 * j/f; record[i].javaBean = j; record[i].food = f; record[i].rate = r; i++; } for (j = 0; j < N - 1; j++) { maxIdx = N - 1; for (f = j; f < N; f++){ if (record[maxIdx].rate < record[f].rate) maxIdx = f; } tmp = record[j]; record[j] = record[maxIdx]; record[maxIdx] = tmp; } for (i = 0; i < N; i++) { f = record[i].food; j = record[i].javaBean; if (catFood >= f){ get += j; catFood -= f; }else{ r = 1.0 * catFood / f; get += j * r; catFood = 0; } }cout<<setiosflags(ios::fixed)<<setprecision(3)<<get<<endl; } return 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
- 简易版学生成绩管理系统(数组版和链表版都有)
- C#值类型和引用类型(上)
- 用ssh反向连接内网主机
- 2013-10-08 的 一天
- 关于郭天祥单片机书上第四十七页延时函数的相关计算问题
- FatMouse' Trade
- The Fortified Forest(poj1873位运算枚举+凸包)
- hdu 2089 不要62
- 关于郭天祥单片机书上第六十四页消影的解读
- java基础--反射(构造方法)
- 构造函数与静态块
- 使用SetupApi获取LCD EDID信息
- UVa 11218 - KTV, Rujia Liu的神题(一)
- 用NSJSONSerialization自己构造WebService的Json响应包