ABC475 B - Change
おつり
考え方
まずは $1$ 回ごとの支払いで、全部 $1000$ 円紙幣で行うときのおつりを求める方法を考える。
$1000$ 円以上である部分は、そのまま $1000$ 円札で支払ってよい。
支払った分を代金から引くと、残りは $0$ 円以上 $999$ 円以下になる。
もし $0$ 円ならおつりはないので、この時点で continue; してしまってよい。
$1$ 円以上端数があったら、その端数を $1000$ から引けばおつりの額である。
このおつりを求める部分が書けたら、あとは簡単。
毎回おつりの百の位、十の位、一の位を求めて、対応する変数に足しこんでいけばよい。
入力例1での動作
入力を受け取る。
n: 3
a: {1296, 110, 1}
最初は、$1$ 円硬貨、$10$ 円硬貨、$100$ 円硬貨の枚数を全て $0$ 枚としておく。
$1$ 回目は $1296$ 円の買い物である。
$1296$ を $1000$ で割った余りは $296$ なので、おつりは $1000-296=704$ 円となる。
よって、$1$ 円硬貨を $4$ 枚、$10$ 円硬貨を $0$ 枚、$100$ 円硬貨を $7$ 枚受け取る。
$2$ 回目は $110$ 円の買い物である。
$110$ を $1000$ で割った余りは $110$ なので、おつりは $1000-110=890$ 円となる。
よって、$1$ 円硬貨を $0$ 枚、$10$ 円硬貨を $9$ 枚、$100$ 円硬貨を $8$ 枚受け取る。
$3$ 回目は $1$ 円の買い物である。
$1$ を $1000$ で割った余りは $1$ なので、おつりは $1000-1=999$ 円となる。
よって、$1$ 円硬貨を $9$ 枚、$10$ 円硬貨を $9$ 枚、$100$ 円硬貨を $9$ 枚受け取る。
全て足すと、$1$ 円硬貨は $4+0+9=13$ 枚となる。
$10$ 円硬貨は $0+9+9=18$ 枚となる。
$100$ 円硬貨は $7+8+9=24$ 枚となる。
したがって、答えは 13 18 24 である。
注意点
特になし。
別解
特になし。