考えて競プロする

プログラミングコンテストの問題をどう考えて解いたかを記録していくブログです。使用言語はPython3

ABC092-B - Chocolate を解く

ABC092-B - Chocolate

 

N人の人が Ai 日の間隔でチョコを食べる

食べた数と余りから用意されていたチョコの数を求める問題

 

初日は必ずチョコを食べるという条件がカウントをやや難しくしている

入出力例を見て計算方法を考えてみることにする

 

1人目は 2日間隔のため、1, 3, 5, 7 日の計4回チョコを食べた

これを計算で求めるとどうなるか

 

まず、7日間から初日を除くと残り6日である

これを2で割ると3になる。つまり、6日は3回分ということになる

これに初日の1回を足すと計4回になり、出力例の回数と合致する

 

2人目以降についても上記のように計算していけば

各自のチョコを食べた個数を求めることができる

 

以上を踏まえて書いたコードを以下に示す

 

提出したコード

# 入力
N=int(input())
D,X=map(int,input().split())

for i in range(N):
  A=int(input())
  X+=(D-1)//A+1

# 出力
print(X)

 

提出結果はACでした