P6552 文具订购(加强版)
题目背景
感谢@肖然 的创意以及@Elegia @dengyaotriangle 对算法复杂度论证做出的贡献(我只是搬题的
题目描述
小明的班上共有 $n$ 元班费,同学们准备使用班费集体购买 $3$ 种物品:
1. 圆规,每个 $x$ 元。
2. 笔,每支 $y$ 元。
3. 笔记本,每本 $z$ 元。
小明负责订购文具,设圆规,笔,笔记本的订购数量分别为 $a,b,c$,他订购的原则依次如下:
1. $n$ 元钱必须正好用光,即 $ax+by+cz=n$。
2. 在满足以上条件情况下,成套的数量尽可能大,即 $a,b,c$ 中的最小值尽可能大。
3. 在满足以上条件情况下,物品的总数尽可能大,即 $a+b+c$ 尽可能大。
请你帮助小明求出满足条件的最优方案。数据保证 $x>y>z$。若有多组解,应输出 $(a, b, c)$ 字典序最小的答案。
输入格式
输入包含多组数据,第一行一个整数 $T$ ,表示数据组数。
接下来 $T$ 行每行四个整数,依次为班费数量 $n$ ,三种物品价格 $x,y,z$。
输出格式
对于每组数据,如果问题无解,请输出 $-1$。
否则输出一行三个用空格隔开的整数 $a, b, c$,分别代表圆规、笔、笔记本的个数。
说明/提示
对于全部的测试点,$1\leq T\leq 100$,$0\leq n\leq 10^9 $ ,$1\leq z