pta L1-088 静かに推奨 (python3)

ラダーコンテストの後、ある企業の人事部は組織委員会が優秀な学生グループを推薦できることを希望し、ジンジン姉妹は推薦リストの作成を担当しました。企業が推薦を受け入れるプロセスは次のとおりです。

  • 175 以上のスコアを持つ学生のみが考慮されます。
  • 合計 K 個の推奨リストのバッチが受け入れられます。
  • 原則として、同じ推薦リストに載っている学生のスコアは厳密に増加する必要があります。
  • ラダーコンテストで前回と同じ成績を収めた学生が、PAT テストを受験し、その成績が企業の面接スコアラインに達している場合も認められます。

参加学生全員のスコアと PAT テストのスコアを考慮して、Jing Jing さんが企業に最大何人の学生を推薦できるかを計算するのを手伝ってください。

入力形式:

最初の行に 3 つの正の整数を入力します。N (≤105) は参加学生の数、K (≤5×103) は企業が受け入れた推奨バッチ、S (≤100) は PAT 面接スコアラインです。会社。

次に N 行があり、各行は生徒のラダー スコア (最大スコア 290) と PAT スコア (最大スコア 100) の 2 つのスコアを示します。

出力フォーマット:

Jingjing さんが企業に推薦できる学生の最大数を 1 行で出力します。

入力サンプル:

10 2 90
203 0
169 91
175 88
175 0
175 90
189 0
189 0
189 95
189 89
256 100

出力例:

8

説明例:

175、189、203、256 の 4 つのスコアを選択できる第 1 期生は 1 つずつ、さらに PAT スコア 175 と PAT 90 の生徒、および PAT スコア 189 の生徒とリストには95個追加できます。2 番目のグループでは、リストに入ることができるのは 175 点と 189 点の 2 人の生徒だけです。最終的に合計8名が推薦者リストに名を連ねた。

Pythonコード:

n, k, s = [int(i) for i in input().split()]
t = tuple((input().split() for i in range(n)))
r = 0
d = {}
for a, b in t:
    # 先筛选得分不低于175分和的人
    if int(a) >= 175:
        if int(b) >= s: # 达到面试分数线的人先全部录取
            r += 1
        else:
            # 再按批次录取没有达到面试分数线的人
            if d.get(a,0) < k: 
                r += 1
                d[a] = d.get(a,0) + 1    
print(r)  

 結果を送信します:

 

おすすめ

転載: blog.csdn.net/weixin_51756038/article/details/130002872