#P1428. 箱子塔

箱子塔

题目描述

你有 nn 个箱子,编号从 11nn,每个箱子有三个属性,以第 ii 个箱子为例,分别是重量 wiw_i,承重能力 sis_i,价值 viv_i

你想建一座塔,因此需要将一些箱子堆叠起来,但是每个箱子必须满足:这个箱子上面的所有箱子重量和要小于等于这个箱子的承重能力。

定义一个塔的价值为它所用的所有箱子的价值和,问塔的最大价值是多少?

输入格式

第一行一个整数 nn,表示箱子数量。

接下来 nn 行,一行三个整数,用来描述这个箱子的三个属性 wi,si,viw_i,s_i,v_i

输出格式

一行一个整数,表示塔的最大价值。

样例 #1

样例输入 #1

3
2 2 20
2 1 30
3 1 40

样例输出 #1

50

选箱子 22 和箱子 11 ,总价值是 5050

样例 #2

样例输入 #2

4
1 2 10
3 1 10
2 4 10
1 6 10

样例输出 #2

40

直接全选,按顺序放就是合法的选择,总价值为 4040

样例 #3

样例输入 #3

5
1 10000 1000000000
1 10000 1000000000
1 10000 1000000000
1 10000 1000000000
1 10000 1000000000

样例输出 #3

5000000000

要注意最后答案有可能超过 3232 位整数

样例 #4

样例输入 #4

8
9 5 7
6 2 7
5 7 3
7 8 8
1 9 6
3 3 3
4 1 7
4 5 5

样例输出 #4

22

自顶向下选择 5,6,8,45,6,8,4

提示

对于 100%100\% 的数据:

  • 所有的数据都是整数。
  • 1  N  103 1\ \leq\ N\ \leq\ 10^3
  • 1  wi, si  104 1\ \leq\ w_i,\ s_i\ \leq\ 10^4
  • 1  vi  109 1\ \leq\ v_i\ \leq\ 10^9