C++问题 求大神解答描述某著名游戏主机厂商推出了家庭会员机制,可以由多个人共同组成家庭账户,以享受更便宜的会员服务费。主机厂商规定每个人只能加入一个家庭账户,并且推出了三种不同人数的家庭账户以供自由选择,分别是8个人组成的钻石家庭账户、5个人组成的黄金家庭账户和3个人组成的白银家庭账户。现在有m个同学都想成为家庭账户的成员,设最终组成了a个钻石家庭账户、b个黄金家庭账户和c个白银家庭账户,要求遵循以下原则:1. m个同学必须都加入家庭账户,即8a+5b+3c=m2. 在满足第1点的情况下,使得a、b、c中的最小值尽可能大3. 在满足第1、2点的情况下,使得a+b+c尽可能大求出满足条件的最优方案。输入多组案例。一个正整数n,表示案例的数量(n<=50)。每组案例有一个正整数m,表示总人数(m<=100000)。输出针对每组案例,如果无解,输出-1;如果有解,输出空格隔开的三个整数a、b、c,分别表示钻石、黄金、白银家庭账户的数量。每组案例输出完都要换行。样例输入 311633样例输出-11 1 11 2 5