当前位置: 首页 > news >正文

问题 G: 老鼠和猫的交易

题目描述

小老鼠准备了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
#include<iostream>
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 i=0;i<n;i++)for(int j=0;j<n-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);
}

http://www.lryc.cn/news/298925.html

相关文章:

  • HiveSQL——借助聚合函数与case when行转列
  • 冒泡排序,判断回文,以及12-24小时制
  • 【Vue】computed与watch
  • 探索设计模式的魅力:捕捉变化的风-用观察者模式提升用户体验
  • SpringCloud-高级篇(十九)
  • Junit常用断言
  • docker 实现 mysql:8.3.0 主从复制(2024年2月13日最新版本)
  • STM32 + ESP8266,连接阿里云 上报/订阅数据
  • 如何利用chatgpt提升工作效率?
  • MongoDB聚合:$geoNear
  • Docker-CE 国内源国内镜像
  • 【Tauri】(3):使用Tauri1.5版本,进行桌面应用开发,在windows上搭建环境,安装node,rust环境,可以打包成功,使用vite创建应用
  • C++ 堆排序
  • U3D记录之FBX纹理丢失问题
  • 监测Nginx访问日志502情况后并做相应动作
  • 【数据分享】1929-2023年全球站点的逐年平均风速(Shp\Excel\免费获取)
  • Android性能调优 - 应用安全问题
  • C#的Char 结构的像IsLetterOrDigit(Char)等常见的方法
  • 部分意图分类【LLM+RAG】
  • 1277. 统计全为 1 的正方形子矩阵
  • Python 3 时间序列可视化指南
  • [算法前沿]--059-大语言模型Fine-tuning踩坑经验之谈
  • 【Docker】01 Docker安装与配置
  • Unity3d Shader篇(六)— BlinnPhong高光反射着色器
  • Go-zero微服务个人探究之路(十二)定时任务的选择调研
  • Java中,List、Map和Set的区别是什么?
  • Google刚刚推出了图神经网络Tensorflow-GNN
  • 链表基础知识汇总
  • Educational Codeforces Round 2(远古edu计划)
  • 【Tauri】(1):使用Tauri1.5版本,进行桌面应用开发,在windows,linux进行桌面GUI应用程序开发,可以打包成功,使用 vite 最方便