【PAT乙级】1020 月饼

1.题目描述

在这里插入图片描述
在这里插入图片描述

2.题目分析

首先每一个种类的月饼都有库存量总售价,以及单价这三个属性,所以要用到结构体。注意一下题中虽然没说单价,但要获得最大收益一定是把单价最贵种类的月饼先卖掉,如果卖完,再买第二贵的月饼。

3.代码演示
#include<iostream>
#include<algorithm>
using namespace std;
typedef struct Y{
	double a; //库存量 
	double e;  //总售价 
	double p; //单价 
};
bool cmp(Y x1,Y x2){
	return x1.p > x2.p;
}
int main(){
	int N,D;
	cin >> N >> D;
	Y d[N];
	double sum=0;
	for(int i=0;i<N;i++){
		cin >> d[i].a;
	}
	for(int i=0;i<N;i++){
		cin >> d[i].e;
		d[i].p = d[i].e/d[i].a;
	}
	sort(d,d+N,cmp); //把每一个种类月饼单价从高到低排序。
	int j=0;
	while(D!=0){
	   if(D<=d[j].a){
			sum=sum+D*d[j].p;
			D=0;
		}
		else{
		   sum = sum +d[j].e;
		   D = D-d[j].a;
		}	
		j++;
	}
	printf("%.2lf",sum);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值