公式
A - 合格者への拍手 / Applause for the Successful Candidates 解説 by admin
Qwen3-Coder-480B概要
参加者のうち、スコアが \(K\) 以上である人に対して、それぞれのスコアに等しい回数の拍手を送るとき、拍手の総数を求めよ。
考察
この問題では、各参加者の最終スコア \(P_i\) が与えられ、スコアが \(K\) 以上であれば、そのスコアの分だけ拍手を送ることになります。例えば、ある参加者のスコアが \(80\) で、\(K=70\) であれば、\(80\) 回の拍手を送ることになります。
素朴な方法としては、全ての参加者について、スコアが \(K\) 以上かどうかを判定し、条件を満たしていればそのスコアを合計に加える、という処理を行えばよいです。制約を見ると、\(N\) が最大で \(10^5\)、スコアが最大で \(100\) なので、全員分を調べても十分間に合います。
この問題では、ソートや二分探索などの高度なアルゴリズムは必要なく、単純な線形探索で解けます。
アルゴリズム
- 参加者数 \(N\) と基準スコア \(K\) を入力。
- 各参加者のスコア \(P_i\) をリストに入力。
- スコアのリストを順番に見ていき、スコアが \(K\) 以上であれば、そのスコアを合計に加える。
- 最終的な合計を出力。
計算量
- 時間計算量: \(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 によって生成されました。
投稿日時:
最終更新: