给出 n 辆车,每辆车有电池容量 cap[i] 与续航里程 rng[i],总容量上限为 K。要求在总容量不超过 K 的前提下:
-1。有从 1 到 n 按序编号的 n 辆纯电的新能源汽车,给定一个总的电池容量 k ,请根据每辆新能源汽车的电油容量和续航里程情况,选取出对应的新能源汽车的组合,满足所选择的组合内的新能源汽车的电油容量总和不大于 k ,总续航里程最高。
第一行输入为整数 n ,表示新能源汽车数量,范围为 1 ~ 50 ;
第二行输入为整数 k ,表示给定的总的电池容量,范围为 1 ~ 1000 ;
接下来的 n 行输入,按照 1 到 n 按序编号顺序,逐行表示对应编号的新能源汽车的电池容量和续航里程,以空格分隔;
电池容量范围为 1 ~ 100,续航里程范围为 1 ~ 1000 。
按照编码从小到大输出所选组合中的新能源汽车编号,编号间以空格隔开。
注意:
1、如果没有满足要求的组合,输出 −1 。
2、如果存在多个满足条件的组合均达到最高里程,则取总电量最少的组合输出。
在上述前提下,若存在多个组合均满足最少总电量,则取汽车数量最少的组合输出。
在上述前提下,题目可保证仅有一组组合。
输入
1
80
100
300
输出
-1
说明
该用例中不存在电量不大于 80 的组合,因此返回 −1
输入
5
80
30 45 15 15 80
400 470 200 200 870
输出
1 2
说明
一共 5 辆车,电油容量分别为 30、45、15、15、80 ,续航里程分别为 400、470、200、200、870 ,总电量要求不大于 80 。
对应如下表
总电量不大于 80 的车辆组合可以是:(1)、(2)、(3)、(4)、(5)、(1,2)、(1,3)、(1,4)、(1,3,4)、(2,3)、(2,4)、(2,3,4)、(3,4)
对应的总电量依次为:
30、45、15、15、80、75、45、45、60、60、60、75、30
对应的总续航里程依次为:
400、470、200、200、870、870、600、600、800,670、670、870、400
由上可知,满足条件的最高续航里程为 870 ,分别为组合 (5)、(1,2)、(2,3,4)
在续航里程相同的情况下,取电量最小的组合,分别为 (1,2)、(2,3,4)
在电量相同的情况下,取汽车数量最小的组合,为 (1,2)
因此最终输出为
1 2
输入
4
80
30 45 50 60
400 470 450 600
输出
1 2
说明
一共 4 辆车,电池容量分别为 30、45、50、60,续航里程分别为 400、470、450、600,总电量要求不大于 80 。
总电量不大于 80 的车辆组合可以是 1 (总电量 30 )、1 和 2 (总电量 75 )、1 和 3 (总电量 80 )、2 (总电量 45 )、3(总电量 50 )、4 (总电量 60 ),总续航里程分别为 400,870,850,470,450,600 .
因此最长续航里程为 870 ,对应的组合为 1 和 2 。
最终输出
1 2