网站建站上海,17网站一起做网店 睡衣,php 企业网站多少钱,扬州建设网站公司题目描述
小老鼠准备了M磅的猫粮#xff0c;准备去和看守仓库的猫做交易#xff0c;因为仓库里有小老鼠喜欢吃的五香豆。 仓库有N个房间#xff1b; 第i个房间有J[i] 磅的五香豆#xff0c;并且需要用F[i]磅的猫粮去交换#xff1b; 老鼠不必交换该房间所有的五香豆…题目描述
小老鼠准备了M磅的猫粮准备去和看守仓库的猫做交易因为仓库里有小老鼠喜欢吃的五香豆。 仓库有N个房间 第i个房间有J[i] 磅的五香豆并且需要用F[i]磅的猫粮去交换 老鼠不必交换该房间所有的五香豆换句话说它可以用 F[i]* a% 磅的猫粮去换取J[i]* a%磅的五香豆其中a是一个实数。 现在请帮忙计算一下小老鼠最多能够得到多少磅的五香豆
输入
输入包含多组测试用例。 每组测试数据首先一行是2个非负整数M和N接着的N行每行分别包含2个非负整数J[i]和F[i]。 输入数据以两个-1结束。 题目保证所有的数据不超过1000.
输出
请计算并输出小老鼠最多能够得到的五香豆数量。 每组数据输出一行保留3位小数。
样例输入 Copy
5 3
7 2
4 3
5 2
20 3
25 18
24 15
15 10
-1 -1
样例输出 Copy
13.333
31.500
#includeiostream
using namespace std;
struct amount {double x, y, z;
};
amount trade[1000];
int main() {int m, n;cin m n;do {double sum(0);for (int i 0; i n; i) {cin trade[i].x trade[i].y;trade[i].z trade[i].x / trade[i].y;}for(int i0;in;i)for(int j0;jn-i-1;j)if (trade[j].z trade[j 1].z){amount temp trade[j];trade[j] trade[j 1];trade[j 1] temp;}while (m ! 0) {int i;for (i 0; i n; i) {if (m trade[i].y){sum trade[i].x;m - trade[i].y;}else {sum m / trade[i].y * trade[i].x;m 0;}}if (i n)break;}printf(%.3f\n, sum);sum 0;cin m n;} while (m ! -1 n ! -1);
}