U103970.J1.小明坐飞机

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

小明在寒假开始时坐飞机出国旅游,由于家中突然有事,他需要回家。
可由于他喜欢买纪念品,有很多行李,但他的行李箱只能装xx千克(且至少要装11件物品,否则行李箱就没用了,且行李箱中至少要有1件东西才能托运),超出的部分需要托运,每千克要付yy元,他一共有nn组东西,编号为ii,从11nn,每组东西有mim_i件,编号为jj,从11jj,每件重aja_j千克,价值bjb_j元。
小明可以选择一些东西(哪一组东西中的那一(几)件)装入行李箱带回去,其他的只能留下来。(物品不可被分割)
由于小明不会算最大总收益,所以他找到了你,希望你设计一个程序计算出他带那些东西可以获得最大总收益,总收益是多少。

输入格式

11行,输入x,y,nx,y,n,表示小明行李箱的容量,托运的价格和东西的组数
接下来2n2n行,每两行为一组,第一行是mim_i,第二行是从a1,b1a_1,b_1aj,bja_j,b_j,共2mi2m_i个数字

输出格式

分别输出每组物品中小明带走东西的最优解,每组物品占一行,输出带走物品的“组号 物品号”,若一组物品中每一件东西都不需要带走则无需输出。
(特别的,如果带走东西的最优解是带走全部物品,只输出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%100\%的数据,有
(15x1000)(15 \le x \le 1000)(1y20)(1 \le y \le 20)(3n100)(3 \le n \le 100)
(2mi20)(2 \le m_i \le 20)(1aj100)(1 \le a_j \le 100)(1bj100)(1 \le b_j \le 100)

样例1说明:
编号为2  22\;2的物品(第二组的第二个)重量太大,价值太低,不值得放入行李箱,选择放入其他的东西,总价值15元

首页