## 問題
商品名と支払い金額を入力すると、お釣りの「小銭の枚数」を返す関数またはメソッドを実装せよ。商品名と価格は以下の通り。
* お茶: 120円
* コーラ: 150円
* エナジードリンク: 280円
入力される通貨は日本円で、最大1000円までとする。
また、有効な貨幣は「1000円」「500円」「100円」「50円」「10円」とする。
たとえば、「1000円でお茶を購入」すると、返却すべき金額は880円だが、釣銭は「500円×1, 100円×3, 50円×1, 10円×3」となる。返り値は、任意の形式のクラス、連想配列、オブジェクト、構造体、リストなどで表現してよい。
PHPの擬似コードで書くと以下のようになる。
```php
function calcChange(string $item, int $paid_money): array {
// ...
}
$expected = [500 => 1, 100 => 3, 50 => 1, 10 => 3];
assert($expected === calcChange("お茶", 1000));
```
```cpp
int calcChange(string item, int paid_money) {
map<string, int> mp(3) = {
'お茶': 120,
'コーラ': 150,
'エナジードリンク': 280
};
int change = paid_money - mp(item);
// error handling
map<int, int> ans(4) = {
10: 0,
50: 0,
100: 0,
500: 0,
}
for (key : range(ans)) {
ans(key) = change / key;
change -= ans(kay) * key;
}
// ans(500) = change / 500;
// change -= change / 500 * 500;
// ans(100) = change / 100;
// change -= change / 100 * 100;
// ans(50) = change / 50
// change -= change / 50 * 50;
// ans(10) = change / 10;
// change -= change / 10 * 10;
cout << ans << endl;
}