PAT B1020 moon cake

#include<iostream>
#include<algorithm>
using namespace std;

struct mooncake
{
	double store;
	double sell;
	double price;
} cake[1010];

bool cmp(mooncake a,mooncake b)
{
	return a.price>b.price;
}

int main()
{
	int n;
	double D;
	cin>>n>>D;
	for(int i=0;i<n;i++)
	{
		cin>>cake[i].store;
	} 
	for(int i=0;i<n;i++)
	{
		cin>>cake[i].sell;
		cake[i].price=cake[i].sell;
	} 
	sort(cake,cake+n,cmp);
	double ans=0;
	for(int i=0;i<n;i++)
	{
		if(cake[i].store<=D)
		{
			D -= cake[i].store;
			ans += cake[i].sell;
		}
		else
		{
			ans += cake[i].price*D;
			break; 
		}
	}
	//cout<<"ans="<<ans;
	printf("%0.2f\n",ans);
	return 0;
 } 

  

Guess you like

Origin www.cnblogs.com/chuxinbubian/p/11583958.html