atcoder#DPX. Tower
Tower
题目描述
個のブロックがあります。 ブロックには と番号が振られています。 各 () について、ブロック の重さは で、丈夫さは で、価値は です。
太郎君は、 個のブロックのうち何個かを選び、それらを任意の順序で一列に積み重ね、塔を作ることにしました。 このとき、塔は次の条件を満たさなければなりません。
- 塔に含まれる各ブロック について、ブロック より上に積まれたブロックの重さの総和は 以下である。
塔に含まれるブロックの価値の総和の最大値を求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
塔に含まれるブロックの価値の総和の最大値を出力せよ。
题目大意
题目描述
你有 个箱子,编号从 到 ,每个箱子有三个属性,以第 个箱子为例,分别是重量 ,承重能力 ,价值 。
你想建一座塔,因此需要将一些箱子堆叠起来,但是每个箱子必须满足下面的条件:
- 这个箱子上面的所有箱子重量和要小于等于这个箱子的承重能力。
定义一个塔的价值为它所用的所有箱子的价值和。
最大化这个塔的价值并输出它。
输入格式
第一行一个整数 ,表示箱子数量。
接下来 行,一行三个整数,用来描述这个箱子的三个属性 。
输出格式
一行一个整数,表示塔的最大价值。
数据范围
$n \le 10^3, 1 \le w_i, s_i \le 10^4, 1 \le v_i \le 10^9$。
3
2 2 20
2 1 30
3 1 40
50
4
1 2 10
3 1 10
2 4 10
1 6 10
40
5
1 10000 1000000000
1 10000 1000000000
1 10000 1000000000
1 10000 1000000000
1 10000 1000000000
5000000000
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
22
提示
制約
- 入力はすべて整数である。
Sample Explanation 1
上から順にブロック と積み重ねると、この塔は条件を満たします。 塔に含まれるブロックの価値の総和は となります。
Sample Explanation 2
上から順にブロック と積み重ねればよいです。
Sample Explanation 3
答えは 32-bit 整数型に収まらない場合があります。
Sample Explanation 4
例えば、上から順にブロック と積み重ねればよいです。