PAT1020.月饼

来源:互联网 发布:淘宝免费买东西教程 编辑:程序博客网 时间:2024/04/27 16:17
第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;}

0 0
原创粉丝点击