首页 > 学院 > 开发设计 > 正文

PAT1020.月饼

2019-11-08 19:56:02
字体:
来源:转载
供稿:网友
第2个测试点一直错误,原来是stock定义为int,测试点里面应该库存也有小数,所以导致错误。更正后的代码如下:
#include <iostream>#include <algorithm>using namespace std;class mooncake{public:	double stock;	double PRice;	double sp;	mooncake():stock(0),price(0),sp(0){}	bool Operator<(const mooncake& m1) const	{		return price>m1.price;	}};int main(){	int n;	int D;	cin >> n >> D;	mooncake m[1000] = {};	for(int i=0;i<n;++i)	{		cin>>m[i].stock;	}	for(int i=0;i<n;++i)	{		cin>>m[i].sp;		m[i].price = m[i].sp/m[i].stock;	}	sort(m,m+n);	double sum = 0;	int i = 0;	while( D != 0 && i<n)	{		if( D >= m[i].stock)		{			sum += m[i].sp;			D -= m[i].stock;		}		else		{			sum += m[i].price*D;			break;		}		++i;	}	printf("%.2lf",sum);	return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表