公式

A - 合格者数 / Number of Successful Applicants 解説 by admin

Qwen3-Coder-480B

概要

各生徒のテストの得点と合格ラインが与えられるので、合格した生徒の人数を数える問題。

考察

この問題は、単純に全生徒の得点を一つずつ確認して、合格ライン \(K\) 以上かどうかを判定すれば良いです。
特に複雑な条件や最適化が必要なく、素直に全探索を行っても間に合います。

制約を見ると、生徒数 \(N\) は最大で \(2 \times 10^5\) ですが、各得点の比較処理は定数時間で行えるため、全体でも十分高速に動作します。
よって、より高度なアルゴリズムやデータ構造は必要ありません。

例えば、以下のような入力があったとします:

5 60
55 70 60 45 80

このとき、得点が 60 以上の生徒は生徒2(70点)、生徒3(60点)、生徒5(80点)の3人なので、答えは 3 となります。

アルゴリズム

  1. 入力から生徒数 \(N\) と合格ライン \(K\) を読み込む。
  2. 各生徒の得点 \(S_1, S_2, ..., S_N\) をリストなどで受け取る。
  3. 得点リストに対してループを回し、それぞれの得点が \(K\) 以上であればカウンターを増やす。
  4. 最終的なカウンターの値を出力する。

計算量

  • 時間計算量: \(O(N)\)
  • 空間計算量: \(O(N)\)

実装のポイント

  • 得点のリストは input().split() で受け取り、map(int, ...) を使って整数に変換するのが一般的。

  • 合格者のカウントはループ内で簡単に行えるため、特別なライブラリは不要。

    ソースコード

# 入力の読み込み
N, K = map(int, input().split())
scores = list(map(int, input().split()))

# 合格者数をカウント
count = 0
for score in scores:
    if score >= K:
        count += 1

# 結果の出力
print(count)

この解説は qwen3-coder-480b によって生成されました。

投稿日時:
最終更新: