【第二届】无锡太湖学院ICPC校队对抗赛原创 IOI C题题解

题目描述

       生日蛋糕最早起源于西方,后来才慢慢的传入中国。最早的蛋糕是用几样简单的材料做出来的,这些蛋糕是古老宗教神话与奇迹式迷信的象征。
       你是一家糕点公司的老板,现在你需要对 3 种蛋糕的销售出谋划策,其分别仓库中的存储量为 17、14、11 吨,总售价分别为 74、71、44 万元。如果现在市场上能够消费的货物量只有 19 吨,那么我们能够获得的最高利润的方法则是卖出仓库中的所有第 2 种蛋糕 14 吨、和第 1 种蛋糕 5 吨,获得 71 + 74 * 5 / 17 = 92.76(万元)

输入描述:

在输入数据中:

首行给出蛋糕的类型数 T 和市场上能够消费的货物数 M ,下一行给出 T 个自然数作为每种蛋糕的存储量(以吨为单位),再下一行给出 T 个自然数作为每种蛋糕的总售价(以万元为单位)

输出描述:

在一行中输出最高利润,结果保留到小数点后 2 位(以万元为单位)

示例1

输入

3 19
17 14 11
74 71 44

输出

92.76

备注:

 

0≤T≤999

0≤M≤500


注意使用结构体加排序可以按照每样单价输出一个数组,在根据仓库中已有的数量进行一个循环的判断,加减,注意部分细节不能按照除的,要直接加上原价,否则可能会像我一样最开始wa了一发

#include<bits/stdc++.h>
using namespace std;

struct sex
{
	double a,b;
	double c;
}dangao[10100];

bool cmp(sex x1,sex y1)
{
	return x1.c>y1.c;
}

int main()
{
	 int T,M;
	 cin >> T >> M ;
	 for(int i=1;i<=T;i++)
	 cin >> dangao[i].a ; 
	 
	 for(int i=1;i<=T;i++)
	 cin >> dangao[i].b ;
	 
	 for(int i=1;i<=T;i++)
	 dangao[i].c=dangao[i].b/dangao[i].a;
	 
     sort(dangao+1,dangao+T+1,cmp);
	 
	 // for(int i=1;i<=T;i++)
	 // cout<<dangao[i].c <<" "<<dangao[i].a<<endl;
	 
	 double sum=0;
	 
	 for(int i=1;i<=T;i++)
	 {
	 	if(M<dangao[i].a)
	 	{
	 		sum+=M*dangao[i].c;
	 		printf("%.2lf",sum);
	 		break;
	 	}
	 	if(M>=dangao[i].a)
	 	{
	 		sum+=dangao[i].b;
	 		M-=dangao[i].a;
	 	}
	 }
	 
	 return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值