【题目描述】
这是一个so easy的问题:你有一个容量为M的背包。你希望将N个物品放入背包,每个物品的体积是Vi,价值是Wi。显然,并非所有物品都可以放入背包。那么,怎样放才能在不超过总体积的情况下,使所放物品价值最大?
请你编程解决这个问题。同时,请你求出,有多少种不同的放法可以达到最大价值。注意,输入的物品各不相同。尽管某些物品的价值和体积可能相等,但它们不属于同一物品。
【输入文件】
第一行两个整数N,M
接下来n行,每行两个整数Vi,Wi
【输出文件】
共两行,第一行一个整数表示最大价值。第二行一个整数表示最优放法数量。
【输入样例】
3 4
2 2
2 1
3 3
【输出样例】
3
2
【样例说明】
你可以放前两个物品,总价值3。也可以只放第三个物品,总价值也为3。
【数据规模和约定】
对于10%的数据,n<=10
对于100%的数据,n,m<=1000,Vi,Wi<=1000
对于每个测试点,如果你的两个答案都正确,得10分;只有第一个答案正确,得4分;否则不得分。