U103970.J1.小明坐飞机
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
小明在寒假开始时坐飞机出国旅游,由于家中突然有事,他需要回家。
可由于他喜欢买纪念品,有很多行李,但他的行李箱只能装x千克(且至少要装1件物品,否则行李箱就没用了,且行李箱中至少要有1件东西才能托运),超出的部分需要托运,每千克要付y元,他一共有n组东西,编号为i,从1到n,每组东西有mi件,编号为j,从1到j,每件重aj千克,价值bj元。
小明可以选择一些东西(哪一组东西中的那一(几)件)装入行李箱带回去,其他的只能留下来。(物品不可被分割)
由于小明不会算最大总收益,所以他找到了你,希望你设计一个程序计算出他带那些东西可以获得最大总收益,总收益是多少。
输入格式
第1行,输入x,y,n,表示小明行李箱的容量,托运的价格和东西的组数
接下来2n行,每两行为一组,第一行是mi,第二行是从a1,b1到aj,bj,共2mi个数字
输出格式
分别输出每组物品中小明带走东西的最优解,每组物品占一行,输出带走物品的“组号 物品号”,若一组物品中每一件东西都不需要带走则无需输出。
(特别的,如果带走东西的最优解是带走全部物品,只输出put it all in和物品的价值(换行),如果他的行李箱每一件物品都带不走,只输出can't fit)
输入输出样例
输入#1
20 5 3 2 2 3 2 3 2 2 3 16 1 2 2 3 2 3
输出#1
1 1 1 2 2 1 3 1 3 2 15
说明/提示
对于100%的数据,有
(15≤x≤1000),(1≤y≤20),(3≤n≤100),
(2≤mi≤20),(1≤aj≤100),(1≤bj≤100)
样例1说明:
编号为22的物品(第二组的第二个)重量太大,价值太低,不值得放入行李箱,选择放入其他的东西,总价值15元