#6575. 最小余钱 (Smallest Change / Најмал кусур)

最小余钱 (Smallest Change / Најмал кусур)

题目名称:最小余钱 (Smallest Change / Најмал кусур)

版权信息:2021年马其顿编程竞赛 - 社区与地区赛 (Macedonian Programming Contests 2021 - Community and Regional Competition)

题目描述

商店里有三种你喜欢的糖果,它们的单价分别为 B1B_1B2B_2B3B_3 第纳尔。你的母亲给了你 MM 第纳尔,让你根据自己的喜好购买任意数量的每种糖果。你的任务是尽量减少买完糖果后剩下的余钱(找零),以便把这些剩下的钱放进你妹妹的储蓄罐里。

你需要找到一种购买组合(每种糖果购买的数量),使得剩下的余钱最少。如果存在多种组合都能得到相同的最小余钱,输出其中任何一种即可。


输入格式

输入只有一行,包含四个整数 B1,B2,B3B_1, B_2, B_3 (1Bi10001 \le B_i \le 1000) 和 MM (1M10,0001 \le M \le 10,000)。

输出格式

第一行:输出购买后剩下的最小余钱。 第二行:输出三个整数(均 0\ge 0),分别代表第一种、第二种和第三种糖果的购买数量。


限制条件

  • 时间限制:200 毫秒
  • 内存限制:64 MB

样例数据

输入 输出 解释
7 5 3 4 1
0 0 1
只有 4 元,只能买 1 颗 3 元的糖果,余 1 元。
7 5 3 21 0
3 0 0
21 元买 3 颗 7 元糖果余 0 元。也可以买 3 颗 5 元和 2 颗 3 元。
19 13 17 50 1
1 1 1
每样买 1 颗总价 49 元,余 1 元。