公式
A - 合格ライン / Passing Score 解説 by admin
Qwen3-Coder-480B概要
クラスの生徒の得点の中から、合格ライン \(X\) を下回る得点の人数を数える問題。
考察
この問題は、与えられた数列 \(A_1, A_2, \ldots, A_N\) の中から、\(X\) よりも小さい値の個数を数えるだけです。
例えば、\(N = 5\), \(X = 60\), 得点が \([45, 70, 55, 80, 60]\) の場合、
45, 55 が 60 より小さいので、答えは 2 になります。
このような単純な比較は、全要素に対して1回ずつ確認すれば十分であり、特別な工夫も必要ありません。
また、制約を見ると \(N\) は最大で \(2 \times 10^5\) なので、\(O(N)\) の解法でも十分高速に動作します。
アルゴリズム
- 生徒の人数 \(N\) と合格ライン \(X\) を入力で受け取る。
- 各生徒の得点 \(A_1, A_2, \ldots, A_N\) をリストとして受け取る。
- 各得点について、\(X\) より小さいかどうかを確認し、そうであればカウンターを増やす。
- 最終的なカウンターの値を出力する。
計算量
- 時間計算量: \(O(N)\)
- 空間計算量: \(O(N)\)
実装のポイント
各得点に対して 未満 であることを判定する際に
score < Xとする(<=ではない)ことに注意。入力の受け取りは
map(int, input().split())を使うことで簡潔に記述できる。ソースコード
# 入力の受け取り
N, X = map(int, input().split())
A = list(map(int, input().split()))
# Xより小さい点数の人数をカウント
count = 0
for score in A:
if score < X:
count += 1
# 結果の出力
print(count)
この解説は qwen3-coder-480b によって生成されました。
投稿日時:
最終更新: