[PAT]クラス1070月餅(25ポイント)(水中貪欲水)

質問の意味:

2つの正の整数N及びMを入力する(Mは疑いの整数であり、N <= 1000、M <= 500)種と最大月餅用月餅市場の需要の数を表し、入力Nは正の整数であり、いくつかの月餅ストックを表します、その後、N正の数は、月餅の株式すべてのショットの利益のいくつかの種類を示して入力します。出力最大の利益。

騙す:

Mテストポイント2は、整数データを含まなくてもよいです。(.....タイトル記述表面Mは正の整数であるが、過去の経験PATクラスのトピックに基づいて、整数がないかもしれないが)

コード:

#define HAVE_STRUCT_TIMESPEC
する#include <ビット/ STDC ++ H>
使用して名前空間std。
ダブル[1007];
ダブルB [1007]。
対<二重、整数>のp [1007]。
メインINT(){
int型のn;
ダブルメートル;
scanf関数( "%Dの%のLF"、&N、&M)。
以下のために(++ I; iは= N <I = 1 INT)
"%のLF"、&[i])とのscanf。
(; iが<= N I ++ I = 1 INT)のため
のscanf( "%のLF"、&B [I])。
(++ I; iが<= N I = 1 INT)のための
I [i]は.second = P [i]が1次回= bの[I] / [I]、P。
ソート(P + 1、P + 1個の+ N)。
二重の合計= 0;
ダブルのANS = 0;
以下のために(INT I = N; I; - I){
(和+ [P [i]は.second <= M){もし
和+ = [P [i]の.second]。
ANS + = B [P [i]は.second]。
}
他{
ANS + =(M-和)* P [i]の1次回。
ブレーク;
}
}
のprintf( "%2F"、ANS)。
0を返します。
}

おすすめ

転載: www.cnblogs.com/ldudxy/p/11788078.html