#P6552. 文具订购(加强版)

文具订购(加强版)

题目背景

感谢@肖然 的创意以及@Elegia @dengyaotriangle 对算法复杂度论证做出的贡献(我只是搬题的

题目描述

小明的班上共有 nn 元班费,同学们准备使用班费集体购买 33 种物品:

  1. 圆规,每个 xx 元。
  2. 笔,每支 yy 元。
  3. 笔记本,每本 zz 元。

小明负责订购文具,设圆规,笔,笔记本的订购数量分别为 a,b,ca,b,c,他订购的原则依次如下:

  1. nn 元钱必须正好用光,即 ax+by+cz=nax+by+cz=n
  2. 在满足以上条件情况下,成套的数量尽可能大,即 a,b,ca,b,c 中的最小值尽可能大。
  3. 在满足以上条件情况下,物品的总数尽可能大,即 a+b+ca+b+c 尽可能大。

请你帮助小明求出满足条件的最优方案。数据保证 x>y>zx>y>z。若有多组解,应输出 (a,b,c)(a, b, c) 字典序最小的答案。

输入格式

输入包含多组数据,第一行一个整数 TT ,表示数据组数。

接下来 TT 行每行四个整数,依次为班费数量 nn ,三种物品价格 x,y,zx,y,z

输出格式

对于每组数据,如果问题无解,请输出 1-1

否则输出一行三个用空格隔开的整数 a,b,ca, b, c,分别代表圆规、笔、笔记本的个数。

3
33 7 4 3
81 39 37 7
227200291 189101 133029 52503
1 2 6
1 0 6
446 845 580

提示

对于全部的测试点,1T1001\leq T\leq 1000n1090\leq n\leq 10^9 1z<y<x1091\leq z<y<x\leq 10^9