#include <iostream>
#include <algorithm>
#include<iomanip>
using namespace std;
//库存可能不够,库存不一定是整数
//我自己测试库存非整数是正确,但是提交系统显示该测试点错误
struct mooncake
{
float money;
float price;
double size; //防止库存不是整数
};
bool comp(mooncake m1,mooncake m2)
{
return m1.price > m2.price;
}
int _tmain(int argc, _TCHAR* argv[])
{
int m_c;
double m_n;
cin >> m_c >> m_n;
mooncake *mcake = new mooncake[m_c];
float total = 0;
for (int i =0; i < m_c;++i)
{
cin >> mcake[i].size;
}
for (int i = 0; i < m_c; ++i)
{
cin >> mcake[i].money;
mcake[i].price = mcake[i].money / mcake[i].size;
}
sort(mcake,mcake+m_c, comp);
double cnt = m_n;
int i = 0;
while (cnt>0 && i < m_c) //防止库存不足
{
if (cnt < mcake[i].size)
{
total += cnt*mcake[i].price;
cnt = 0;
}
else
{
total += mcake[i].money;
cnt -= mcake[i].size;
i++;
}
}
cout << setiosflags(ios::fixed) << setprecision(2) << total << endl;
delete[]mcake;
return 0;
}
1020. 月饼
最新推荐文章于 2023-04-15 11:47:04 发布