公式
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 となります。
アルゴリズム
- 入力から生徒数 \(N\) と合格ライン \(K\) を読み込む。
- 各生徒の得点 \(S_1, S_2, ..., S_N\) をリストなどで受け取る。
- 得点リストに対してループを回し、それぞれの得点が \(K\) 以上であればカウンターを増やす。
- 最終的なカウンターの値を出力する。
計算量
- 時間計算量: \(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 によって生成されました。
投稿日時:
最終更新: