当前位置:网站首页>PTA TIANTI game exercise set l2-003 moon cake test point 2, test point 3 Analysis
PTA TIANTI game exercise set l2-003 moon cake test point 2, test point 3 Analysis
2022-07-07 05:52:00 【qascetic】
The moon cake
Moon cake is a kind of traditional food that Chinese people eat during the Mid Autumn Festival , There are many different flavors of moon cakes in different regions . Now, the inventory of all kinds of mooncakes is given 、 Total selling price 、 And the biggest demand in the market , Please calculate the maximum profit you can get .
Be careful : Allow to take out part of the inventory when selling . The example shows this : If we have 3 Mooncakes , The inventory is 18、15、10 Ten thousand tons of , The total selling price is 75、72、45 One hundred million yuan . If the market's maximum demand is only 20 Ten thousand tons of , Then our biggest revenue strategy should be to sell all 15 Ten thousand tons 2 Mooncakes 、 as well as 5 Ten thousand tons 3 Mooncakes , get 72 + 45/2 = 94.5( One hundred million yuan ).
Input format :
Each input contains a test case . Each test case shall be provided with no more than one 1000 The positive integer N Number of moon cakes 、 And not more than 500( In 10000 tons ) The positive integer D Represents the maximum market demand . The next line shows N A positive number indicates the stock of each kind of moon cake ( In 10000 tons ); The last line gives N A positive number indicates the total selling price of each kind of moon cake ( In 100 million yuan ). Numbers are separated by spaces .
Output format :
For each group of test cases , Output maximum revenue in one line , In hundred million yuan and accurate to the decimal point 2 position .
sample input :
3 20
18 15 10
75 72 45
sample output :
94.50
Ideas : Use the structure to save the inventory of moon cakes 、 Total selling price and unit price . In this question, the higher the unit price of moon cakes, the more income . Each element of the structure array is a kind of moon cake . So use the moon cake unit price to sort the structure array , Put the mooncakes with high unit price in front . Start filling the market with mooncakes with high unit prices , In this way, the total income is high .
Be careful : Each test case is given a No more than 1000 Of Positive integer N Number of moon cakes 、 as well as No more than 500( In 10000 tons ) Of Positive integer D Represents the maximum market demand . The next line shows N It's a positive number Represents the inventory of each kind of moon cake ( In 10000 tons ); The last line gives N A table of positive numbers Show the total selling price of each kind of moon cake ( In 100 million yuan )
The title states that the inventory and total selling price are N It's a positive number So it's not necessarily an integer , It could be floating point numbers
AC Code (C++)
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
struct yuebing
{
double kucun; // stock
double zongshoujia; // Total selling price
double danjia; // The unit price
};
bool cmp(struct yuebing a, struct yuebing b)
{
// Top of the list with high unit price
return a.danjia > b.danjia;
}
int main()
{
int num; // Types of moon cakes
int maxNeed; // Maximum market demand
cin >> num >> maxNeed;
// Dynamic application space
struct yuebing* ptr = new struct yuebing[num];
for (int i = 0; i < num; i++)
cin >> ptr[i].kucun;
for (int i = 0; i < num; i++)
{
cin >> ptr[i].zongshoujia;
// Calculate the unit price of moon cakes
ptr[i].danjia = double(ptr[i].zongshoujia) / ptr[i].kucun;
}
// Arrange in descending order with the unit price of moon cakes
sort(ptr, ptr + num, cmp);
int k = 0; // Used to traverse the structure
double ans = 0; // Save the calculated results
while (maxNeed > 0) // Continue to calculate when the market demand is not met
{
// The market demand is not satisfied, but all kinds of moon cakes have been sold out
if (k >= num)
// There are no moon cakes, so stop calculating
break;
// The current kind of moon cake inventory can meet the market demand
if (maxNeed < ptr[k].kucun)
{
// Subtract the last batch of moon cakes from the inventory , In this problem, this line of code is meaningless
ptr[k].kucun -= maxNeed;
// Calculate the income of the last batch of moon cakes and add the total income
ans += ptr[k].danjia * maxNeed;
// The last batch of moon cakes have been sold, and the market demand is 0
maxNeed = 0;
}
else
{
// Put all the inventory of current moon cakes into the market , Reduce market demand
maxNeed -= ptr[k].kucun;
// Add the total income of the current moon cake to the total income of the statistics
ans += ptr[k].zongshoujia;
}
k++; // Traverse the moon cake type structure
}
// Leave two digit dots
cout << fixed << setprecision(2) << ans;
return 0;
}
Test point 2: Floating point number of inventory
Different friends can try the following test data .
Input :
3 20
18.2 15.4 10
75.6 72.7 45.6
Output :
90.94
Test point 3: The market demand is greater than the total inventory of all moon cakes , That is to say, selling all moon cakes cannot meet the market demand
If there is a segment error, you can try the following test data
Input :
3 200
18.2 15.4 10
75.6 72.7 45.6
Output :
193.90
边栏推荐
- Mysql-centos7 install MySQL through yum
- Interview skills of software testing
- mac版php装xdebug环境(m1版)
- Type de texte de commutation d'entrée et de mot de passe de l'applet natif
- Message queue: how to handle repeated messages?
- 如何提高网站权重
- EMMC打印cqhci: timeout for tag 10提示分析与解决
- Lombok plug-in
- 《2022中国低/无代码市场研究及选型评估报告》发布
- Introduction to distributed transactions
猜你喜欢
Différenciation et introduction des services groupés, distribués et microservices
Reading the paper [sensor enlarged egocentric video captioning with dynamic modal attention]
什么是消息队列?
软件测试面试技巧
Reptile exercises (III)
《ClickHouse原理解析与应用实践》读书笔记(6)
pytorch_ 01 automatic derivation mechanism
Determine whether the file is a DICOM file
判断文件是否为DICOM文件
Message queuing: how to ensure that messages are not lost
随机推荐
《HarmonyOS实战—入门到开发,浅析原子化服务》
Introduction to distributed transactions
On the difference between FPGA and ASIC
Flinksql 读写pgsql
Web architecture design process
How to improve website weight
消息队列:重复消息如何处理?
I didn't know it until I graduated -- the principle of HowNet duplication check and examples of weight reduction
SQLSTATE[HY000][1130] Host ‘host. docker. internal‘ is not allowed to connect to this MySQL server
SAP ABAP BDC (batch data communication) -018
高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏
Wechat applet Bluetooth connects hardware devices and communicates. Applet Bluetooth automatically reconnects due to abnormal distance. JS realizes CRC check bit
AI人脸编辑让Lena微笑
微信小程序蓝牙连接硬件设备并进行通讯,小程序蓝牙因距离异常断开自动重连,js实现crc校验位
linear regression
Pinduoduo product details interface, pinduoduo product basic information, pinduoduo product attribute interface
Paper reading [semantic tag enlarged xlnv model for video captioning]
Data storage 3
Three level menu data implementation, nested three-level menu data
4. Object mapping Mapster