#JH26GQ503. 张老师的背包问题

张老师的背包问题

张老师的背包问题

题目描述

张老师最近刚学习了《背包九讲》

其中有一种《二维背包问题》是这样的:

一共有 nn 个物品,每个物品有三种属性:h,v,wh,v,w,分别代表重量,体积和价值

一个背包的属性有两个:H,VH,V 分别表示背包能承受的重量上限 HH 和体积上限 VV,即物品重量之和 ≤H\leq H,物品体积之和 ≤V\leq V,问最多能装进背包的物品总价值最大是多少。

这个问题可太简单了,张老师分分钟就 AC 了,但是张老师总是有一些神奇的想法

于是他开始思考,如果他拥有的是一个神奇背包会如何呢?

这个神奇背包允许张老师在开始装物品之前可以选择一个自然数 xx,使得 H−x,V+xH-x,V+x,然后再进行物品的选择

现在张老师想知道,如果他使用的是这个神奇背包,他能装进背包的物品总价值最大是多少?

输入格式

输入第一行包含三个整数 n,H,Vn,H,V 表示一共有 nn 个物品,背包重量上限 HH,体积上限 VV

接下来 nn 行,每行三个整数 hi,vi,wih_i,v_i,w_i,分别表示第 ii 个物品的重量,体积和价值

输出格式

输出一个整数表示最大价值

样例输入

5 10 10
0 1 8
2 3 9
4 5 7
10 10 10
5 5 8

样例输出

25

样例解释

张老师在开始前可以选择 x=1x=1,那么背包就会变成 H=9,V=11H=9,V=11,然后选择 1,3,51,3,5 三个物品得到最大价值 2525

数据范围

测试点编号 nn H,VH,V
1∼31 \sim 3 ≤10\le 10 H,V≤300H,V\leq 300
4∼74 \sim 7 ≤20\le 20
8∼108 \sim 10 ≤50\le 50 H,V≤50H,V\leq 50
11∼1311 \sim 13 ≤1000\le 1000 H≤300,V=0H\leq 300, V=0
14∼1614 \sim 16 V≤300,H=0V\leq 300, H=0
17∼2017 \sim 20 H,V≤300H,V\leq 300

特别的,对于所有数据保证:1≤wi≤106,0≤hi,vi≤3001\leq w_i \leq 10^6, 0\leq h_i,v_i \leq 300

本题共20个测试点,每点5分,按测试点累计得分。