题目描述
请解决经典的背包问题。给定一个有容量限制的背包和若干件可以选择放入背包的物品。每件物品都有自己的重量和价值。
你需要选择这些物品的一个子集,可以全部选择,也可以一件都不选。所选物品的总重量不能超过背包容量,并且它们的总价值应当尽可能大。
输入格式
输入包含 至 组测试数据,直到文件结束。
每组数据的第一行包含两个整数 ,分别表示背包容量和物品数量,其中 。
接下来 行,第 行包含两个整数 ,分别表示第 件物品的价值和重量。价值和重量都在 到 之间。
输出格式
对于每组测试数据输出两行。第一行输出所选物品的数量;第二行输出所选物品的编号。第一件物品的编号为 ,第二件为 ,依此类推。编号可以按任意顺序输出。
如果有多种总价值最大的选择方案,输出其中任意一种即可。
5 3
1 5
10 5
100 5
6 4
5 4
4 3
3 2
2 1
1
2
3
1 2 3
1 1
1 1
1
0
10 4
8 5
8 5
16 10
7 4
2
0 1
说明/提示
数据范围与约定
- 测试数据组数在 到 之间