这个问题的核心是找到一个零食的子集(Tk的零食),其总价格 STk 在满足 STk≤S弟弟 的前提下,使得差值 S弟弟−STk 最小。
设所有零食的总价格为 S总=∑i=1nai。 因为所有零食必须被分配,所以有 STk+S弟弟=S总。 将此式代入条件1,得到 STk≤S总−STk,化简后为 2STk≤S总,即 STk≤S总/2。
同时,我们要最小化 S弟弟 - STk = (S总 - STk) - STk = S总 - 2STk。
Tk 和他的弟弟买了n种不同的零食(编号从1开始),每种零食各一个。给定整数m以及价格表{a1,a2,..,an},其中a1=m且对任意2≦i≦n有ai=ai−1×m。编号为i的零食价格为ai。
现在需要把全部零食在两人之间分配(每件零食必须属于其中一人)。Tk作为哥哥,希望自己拿到的零食总价格不超过弟弟零食的总价格;在满足上述条件下,Tk为了照顾弟弟的自尊心希望两人的总价格差尽可能小。请输出Tk最终拿到的零食编号(编号顺序任意)。