atcoder 競プロ典型90問 016 - Minimum Coins(★3
2022.10.16
問題
https://atcoder.jp/contests/typical90/tasks/typical90_p
方針
- 合計枚数は9999枚以下
- 9999までfor
- aの枚数を
i
枚とすると、bとcの枚数の合計は、9999 - i
枚 - ありえないときは、早期リターン
コード
n = int(input())
a, b, c = map(int, input().split())
ans = pow(10, 18)
for i in range(10000):
if a * i > n:
break
for j in range(10000-i):
if a * i + b * j > n:
break
if (n - (a * i + b * j )) % c == 0:
k = (n - (a * i + b * j )) / c
ans = min(ans, i+j+k)
print(int(ans))