牡牛座ジョブサーチ(2019学校の募集)

タイトル説明

満足の仕事を見つけるために、牛肉は困難と各ジョブの報酬を収集します。標準的な牡牛座は牡牛座は、最も高い賃金の仕事を選択し、自分の能力の値を超えていない困難な場合には仕事に選択しました。自分の仕事は、牛肉を選択した後、牛肉牛肉はほとんどの友人は選挙が、牛肉はまだ助け小さなパートナーに、独自の基準を使用したヘルプの仕事に来ました。牡牛座は、あまりにも多くの小さなパートナーの、ので、彼はあなたにこのタスクを入れていました。

説明を入力します。

各入力は、テストを含みます。
各テストケースの最初の行は、それぞれ2つの正の整数、作業N(N <= 100000)と小さなパートナーM(M <= 100000)の数を含んでいます。
次のNラインは、作業の難易ジ(ディ<= 1000000000)と補償パイ(PI <= 1000000000)を、それぞれ、2つの正の整数を含みます。
次の行は、Mを正の整数、M小さなパートナー愛(AI <= 1000000000)の値を表現する能力を含んでいます。
保証同じ報酬の2つのタスクがありません。

出力説明:

各小パートナーのために、別々のライン出力に正の整数は、彼が得ることができる最高の報酬を表します。ジョブは、複数の人を選択することができます。
例1

エントリー

コピー
3 3 
1 100 
10〜1000 
1000000000 1001年
9 10 1000000000

輸出

コピー
100 
1000 
1001 

ACコード:
1つの#include <ビット/ STDC ++ H.>
 2  使用して 名前空間STD;
 3  
。4  の#define N 100001 + 10
 。5  
6。 構造体ジョブ 
 7。 {
 8。     int型の難易; // 困難
9。     INT給与; // リターン
10  } JB [N]。
 11  構造体12であり 、{
 13である     INT能力; // 容量
14      のint I; //は番号
15      INTを給与= 0// リターン
16  } PESN [N];
 17  
18は、 BOOL CMP(ジョブJB1、JB2ジョブ)// 昇順に困難に応じて
19。 {
 20      リターン jb1.difficulty < jb2.difficulty;
 21である }
 22れる BOOL CMP1(PS1人、 PS2人)// 大容量の小さい
23である {
 24      リターン ps1.ability < ; ps2.ability
 25  }
 26が BOOL CMP2(人物PS1、PS2人)// 昇順に番号
27  {
 28      リターン ps1.i < ps2.i;
 29  }
30  のint main()の
 31  {
 32      INT N、M。
33      一方(scanf関数(" %D%D "、&​​N、&M)=!EOF)
 34      {
 35          のためにINT iは= 0、I <N; I ++ 36              CIN >> JB [I] .difficulty >> JB [ i]は.salary。 
37          ソート(JB、JB + N、CMP)。
38          のためにINT iは= 0 ; I <M、I ++ 39          {
 40              pesn [i]は.I = I。
41              CIN >> pesn [I] .ability。
42          }
 43          ソート(pesn、pesn + M、CMP1)。
44          // maxmoney中存放到J的最大值
45          int型 J = 0 ;
46          INT maxmoney = 0 47          のためにINTは iは= 0 ; I <M、I ++ 48          {
 49              ながら(J < N)
 50              {
 51                  であれば(JB [J] .difficulty> pesn [I] .ability)
 52                      ブレーク53                 maxmoney = MAX(maxmoney、JB [J] .salary)。
54                  J ++ ;
55              }
 56              pesn [I] .salary = maxmoney。
57          }
 58          ソート(pesn、pesn + M、CMP2)。
59          のためにINTは iが= 0を I ++; I <M 60              COUT << pesn [I] .salary << ENDL。
61      }
 62      リターン 0 63 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/sqdtss/p/12552793.html