题目描述
0/1 背包问题: 件物品,第 件的体积是 、价值是 ,每件至多选一次,背包容量为 。
请先求出能获得的最大价值总和,再输出一组能达到该最大价值的物品编号,编号按从小到大排列。
(如果存在多组价值并列最大的方案,输出其中任意一组即可;如果最优方案是一件都不选,输出一个空行。)
输入格式
第一行两个整数 和 。
接下来 行,每行两个整数 和 ,依次表示第 件物品的体积与价值。
输出格式
一行,若干个整数:一组达到最大价值的物品编号,按从小到大的顺序、用空格隔开。最优方案为空集时输出一个空行。
样例
输入
3 5 2 3 3 2 4 1
输出
1 2
样例解释
最优价值为 ,由第 1 + 2 件达成(体积 ),所以输出编号 1 2。
其他方案:单拿第 1 件价值 、第 2 件 、第 3 件 ;第 1 + 3 件体积 超限。