自分用メモ

プログラミングとかのメモを書きたいです

競プロ典型90問:016 - Minimum Coins(★3)

問題

https://atcoder.jp/contests/typical90/tasks/typical90_p

挑戦結果

  • 結果:できた
  • 時間:5分ぐらい

考えたこと

  • 三重ループで全列挙。ループのネスト条件をだんだん狭くするやつ。
  • サンプル問題が帰ってこなかった。
  • 最後は計算すればループが不要になることに気がついた
  • とはいえサンプル問題をPythonで動かすと数秒かかる。pypyなら通るか?

公式解説

https://twitter.com/e869120/status/1383189464650981378

解説を読んだふりかえり

  • 割とするっとはとけたけど、トライ&エラーが結構有った。最初から二重ループを思いつけると良かった。

ソース

N = int(input())
A,B,C = [int(x) for x in input().split()]

cnt = 999999
for a in range(10000):
    for b in range(10000-a):
        if (N - (A*a + B*b)) % C == 0:
            c = (N - (A*a + B*b)) // C
            if c>=0:
                cnt = min(cnt, a+b+c)

print(cnt)