AtCoder ABC 095 B – Bitter Alchemy Python解説
Bitter Alchemy
赤木さんはお菓子の素を X グラム持っています。これを使って、今夜のパーティーに向けて可能な限りたくさんのドーナツを作ることにしました。ただし、来客の味の好みは様々なので、次の条件を守ることにしました。
N 種類のドーナツそれぞれを少なくとも 1 個は作る。
このとき、最大で何個のドーナツを作ることができるでしょうか?お菓子の素を使い切る必要はありません。また、この問題の制約のもとでは、条件を守ることは必ず可能です。
AtCoder Beginner Contest 「Bitter Alchemy」
お菓子の素XからN種類のドーナツを1種類ずつ作ります。そして、余ったお菓子の素Xから、N種類の中でもっともお菓子の素の消費が少ないドーナツを作ればよいでしょう。
n, x = map(int, input().split())
a = x
for _ in range(n):
m = int(input())
x -= m
a = min(a, m)
ans = n + x // a
print(ans)
変数aにはお菓子の素の消費がもっとも少ないドーナツの種類をいれます。min関数を使うので初期値は条件の中で一番大きいXの値を入れています。
作ったN個のドーナツと、余ったお菓子の素をaで割ったドーナツの個数を足して出力すれば正解に辿り着けます。