PAT基本1020月餅(25点)

中国の人々は月餅は中秋節では、伝統的な食べ物で食べて、異なる領域が月餅の多くの異なった味を持っています。今月餅の在庫、合計金額、および市場の最大需要のすべての種類を考えると、あなたはどのくらいの計算された最大の利益を得ることができます。

注意:在庫販売の一部を除去することを許可。与えられた事例はこれです:私たちは月餅の3種類を持っている場合は、その株式は、それぞれ75,72,45億、合計金額18,15,10トンでした。最大市場の需要はわずか20億トンであれば、我々は月餅の2種類の15万トンだけでなく、月餅の3種類5万トンの全てを売却する最大の収益戦略である必要があり、72 + 2分の45 = 94.5(百万)を取得。

入力フォーマット:

各入力は、テストを含みます。各テストケースは、正の整数に与えられていない1000以上の  Nは、正の整数の(トン数千単位)月餅の種類数、及びせいぜい500表す  Dは、市場の最大需要を表しています。次いで、所与のライン  Nは、(トン数千の単位で)各月餅の株式の正の数を表し、最後の行は、得られる  Nは、(十億の単位で)各月餅の合計金額に正の数を表します。スペースで区切られた数字の間。

出力フォーマット:

各試験、出力ラインで、数十億の単位でかつ正確に小数点以下の最大の利益のために。

サンプル入力:

3 20
18 15 10
75 72 45

出力例:

94.50


書式#include <iostreamの> 
の#include <アルゴリズム>
 使用して 名前空間はstdを、
構造体月餅{
     ダブルallPrice。
    量;
    ダブル単価; 
}。
ブールCMP(月餅B、月餅){
     戻り a.unitPrice> b.unitPrice。
} 
int型のmain(){
     int型COUN、必要。
    二重価格= 0 ; 
    CIN >> COUN >> 必要があります。
    月餅MC [COUN]。
    以下のためにint型私= 0私はCOUNを<; I ++ ){
        CIN >> MC [i]の.amount。
    } 
    のためにint型 i = 0 ; iはCOUN <I ++は{)
        CIN >> MCを[I] .allPrice。
        MC [i]は.unitPrice =(MC [i]が.allPrice / MC [i]の.amount)。
    } 
    ソート(MC、MC + COUN、CMP)。
    以下のためにint型 i = 0 ; iは<COUN; iは++ ){
         もし、((必要-MC [i]が.amount)> = 0 ){ 
            必要 - =のMC [i]は.amount。
            価格 + = MC [i]の.allPrice。
        } {
            価格 + =(必要* [i]を.unitPrice MC)。
            破ります; 
        } 
    } 
    のprintf(" %の.2f " 、価格)。
    システム(一時停止)。
    リターン 0 ; 
}

 





おすすめ

転載: www.cnblogs.com/littlepage/p/11355713.html