早押しクイズ大会に参加したN人が、それぞれ勝ち抜けたかどうかを求める問題です。
最初はKポイント、Q回問題を出し、最終的に0以下かどうかを調べます。
1人正解で、それ以外の参加者のポイントが減るのですが、「正解しなかった側」の処理を毎回すると間に合わないので、「正解した側」のポイントを変動させていく方法で作成します。
HTML
n, k, q = map(int, input().split())
b = [k - q] * n
for i in range(q):
ai = int(input())
b[ai - 1] += 1
for j in range(n):
if b[j] > 0:
print("Yes")
else:
print("No")
N,K,Q を受け取ったあとに、N人のポイントを処理するリストを作成します。
リストの要素はすべて「K-Q」です。
ここから、正解者のみポイントを足していき、最終的に1以上のポイントを持つ参加者は「Yes」、そうでない場合は「No」を出力するようにします。
入力例1では、すべて「−1」になります。2回以上正解した人(参加者3のみ)が、「Yes」となります。
プログラムのインデックスは0始まりなのに対し、問題文は1始まりなので、そこは注意が必要ですね。