ABC182 F Valid payments

よくよく考えれば,それはそう・・・

問題

atcoder.jp

 

解法

なんか難しく書いてある(解説も)けど,結局は普段の買い物を考えてみるといい(例えば普通10円玉を使って支払う時に,10円玉のお釣りが出るような払い方はしない)

そうすると,下の桁から端数の扱いでその硬貨を使う使わないの遷移が出てくる

例.財布の中に1円玉,10円玉があるときに

12円は12円(1円玉を使う)で支払うか20円(1円玉を使わない)で支払うかどっちかになるはず

要するに,その硬貨を使うときは使える分だけ使えばいい,使わないときは次の世代に対してその不足分に足りるような分だけ足してやればいいというのがわかるので,あとはこの遷移をそのまま実装する

 

atcoder.jp