公式

A - 合格者への拍手 / Applause for the Successful Candidates 解説 by admin

Qwen3-Coder-480B

概要

参加者のうち、スコアが \(K\) 以上である人に対して、それぞれのスコアに等しい回数の拍手を送るとき、拍手の総数を求めよ。

考察

この問題では、各参加者の最終スコア \(P_i\) が与えられ、スコアが \(K\) 以上であれば、そのスコアの分だけ拍手を送ることになります。例えば、ある参加者のスコアが \(80\) で、\(K=70\) であれば、\(80\) 回の拍手を送ることになります。

素朴な方法としては、全ての参加者について、スコアが \(K\) 以上かどうかを判定し、条件を満たしていればそのスコアを合計に加える、という処理を行えばよいです。制約を見ると、\(N\) が最大で \(10^5\)、スコアが最大で \(100\) なので、全員分を調べても十分間に合います。

この問題では、ソートや二分探索などの高度なアルゴリズムは必要なく、単純な線形探索で解けます。

アルゴリズム

  1. 参加者数 \(N\) と基準スコア \(K\) を入力。
  2. 各参加者のスコア \(P_i\) をリストに入力。
  3. スコアのリストを順番に見ていき、スコアが \(K\) 以上であれば、そのスコアを合計に加える。
  4. 最終的な合計を出力。

計算量

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

実装のポイント

  • 各スコアに対して条件分岐を行うだけで、特別なデータ構造やライブラリは不要。

  • 整数の範囲が小さいので、オーバーフローの心配もありません。

    ソースコード

N, K = map(int, input().split())
P = list(map(int, input().split()))

total_claps = 0
for score in P:
    if score >= K:
        total_claps += score

print(total_claps)

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

投稿日時:
最終更新: