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を出力して完了です。

AtCoderB問題

Posted by cheese