AtCoder ABC 092 B – Chocolate Python解説
Chocolate
ある合宿におやつとしてチョコレートが何個か準備されました。 合宿は N 人が参加して D 日間行われました。i 人目の参加者は合宿の 1, A_i + 1, 2A_i + 1,… 日目にチョコレートを 1 個ずつ食べました。
その結果、合宿終了後に残っていたチョコレートは X 個となりました。また、合宿の参加者以外がチョコレートを食べることはありませんでした。
合宿開始前に準備されていたチョコレートの個数を求めてください。
AtCoder Beginner Contest 092 「Chocolate」
各参加者によってチョコレートを食べる日にちが違う点に注意しましょう。
ある参加者は1,3,5,7日目、またある参加者は1日目と6日目などです。これを実装するには、range関数の引数3つ目でステップ数を決められるので、それを使っていこうと思います。
n = int(input())
d, x = map(int, input().split())
ans = x
for i in range(n):
a = int(input())
for j in range(1, (d + 1), a):
ans += 1
print(ans)
まずansにはチョコレートの余りの数をいれておきました。for文で各参加者のチョコレートを食べる間隔aを受け取り、内側のfor文ではこのaをステップ数にすることで、チョコレートを食べる日だけを求めています。
最後にansを出力して完了です。