公式

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)\) の解法でも十分高速に動作します。

アルゴリズム

  1. 生徒の人数 \(N\) と合格ライン \(X\) を入力で受け取る。
  2. 各生徒の得点 \(A_1, A_2, \ldots, A_N\) をリストとして受け取る。
  3. 各得点について、\(X\) より小さいかどうかを確認し、そうであればカウンターを増やす。
  4. 最終的なカウンターの値を出力する。

計算量

  • 時間計算量: \(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 によって生成されました。

投稿日時:
最終更新: