1. 程式人生 > >1020 月餅 (25 分)

1020 月餅 (25 分)

大於 需求量 () urn struct clas class begin push

題目鏈接:1020 月餅 (25 分)

這道題目邏輯方面比較簡單,但是浙大的PAT往往考察細節,果不其然,因為變量類型的原因,一個測試點沒過。

特別註意,題目中說種類數N和需求量D為正整數,其它變量則為正數,所以這裏的其它變量類型應當是double型。

#include <bits/stdc++.h>
using namespace std;

struct Node
{
    double num;        //註意題目中庫存為正數,沒有說整數 
    double money;    //註意題目中總價為正數,沒有說整數 
    bool operator <(const
Node &b)const { return money/num<b.money/b.num; } }a; vector<Node> stock; int main() { int n,d; cin>>n>>d; double interest=0.0; int num; for(int i=0;i<n;i++) { cin>>a.num; stock.push_back(a); } for(int i=0
;i<n;i++) cin>>stock[i].money; sort(stock.begin(),stock.begin()+stock.size()); for(int i=stock.size()-1;i>=0&&d!=0;i--) { if(stock[i].num>=d) //該種類月餅的庫存大於需求 { interest+=stock[i].money*d/stock[i].num; d=0; }
else //該種類的庫存小於需求 { interest+=stock[i].money; d-=stock[i].num; } } printf("%.2f\n",interest); return 0; }

1020 月餅 (25 分)