#abc475b. Change
Change
题目描述
在 AtCoder 王国,流通着 元、 元、 元三种硬币,以及 元纸币。
高橋君最初持有 张 元纸币、 枚硬币,之后进行了 次购物。
第 次购物买了价值 元的商品。付款时,他只用 元纸币支付,且使用使总金额不少于 元的最少张数;找零时,收到的硬币总枚数最少。
请求出 次购物全部结束时,高橋君持有的各种硬币各有多少枚。
输入格式
N
A_1 ... A_N
输出格式
按 元硬币、 元硬币、 元硬币的顺序,输出 次购物结束时高橋君持有的枚数,用空格隔开。
输入示例 1
3
1296 110 1
输出示例 1
13 18 24
示例 1 说明
- 第 次: 元,付 张纸币( 元),找零 元 枚 元 枚 元;
- 第 次: 元,付 张纸币,找零 元 枚 元 枚 元;
- 第 次: 元,付 张纸币,找零 元 枚。
累计: 元硬币 枚, 元硬币 枚, 元硬币 枚。
注意 可以超过 (第 次就是 ),此时要付多张纸币。
输入示例 2
12
3141 592 65358 9 79 323 84 6264 3 38327 950 28
输出示例 2
52 59 82
示例 2 说明
这组数据里 跨越了 位到 位,既有 、 这种极小值,也有 这种需要付 张纸币的情形,可用来检验张数计算是否正确。
输入示例 3
4
1000 2000 999 1
输出示例 3
10 9 9
示例 3 说明
恰好是 的倍数时(第 、 次),付的纸币金额正好等于商品价格,找零为 ,一枚硬币都不会拿到。第 次找零 元( 枚 元硬币),第 次找零 元( 枚)。合计 元硬币 枚, 元与 元硬币各 枚。
这组数据专门用来检验「整除时不要多付一张纸币」这个边界:若把张数写成 ,第 次会多找 元,答案就错了。
约束条件
- 所有输入值均为整数