B1020 月饼(25分)

#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
struct P{
	double need;//库存 
	double value;//总价 
	double s_mon;//单价 
};
bool cmp(P a, P b){
	return a.s_mon > b.s_mon;
}
int main(){
	int N;
	double D;
	double sum_mon = 0;
	cin >> N >> D;
	P product[N];
	for(int i = 0; i < N; i++){
		scanf("%lf", &product[i].need);
	}
	for(int i = 0; i < N; i++){
		scanf("%lf", &product[i].value);
		product[i].s_mon = product[i].value/product[i].need;
	}
	sort(product, product+N, cmp);
	for(int i = 0; i < N; i++){
		if(product[i].need <= D){
			sum_mon = sum_mon + product[i].value;
			D = D - product[i].need;	
		}else if(product[i].need > D){
			sum_mon = D * product[i].s_mon + sum_mon;
			break;
		}
	}
	printf("%.2lf", sum_mon);
	return 0;
}

posted @ 2019-10-30 21:06  睿晞  阅读(123)  评论(0编辑  收藏  举报