青蛙国王 (brick.*)

青蛙国王 (brick.*)

【题目描述】
在《格林童话》中有这样一则寓言:公主为了祈求青蛙的帮助,答应在事后给它一个吻使它变成王子。故事的最后,公主兑现了她的诺言。
然而在悲伤的现实中,公主没有兑现她的诺言。公主将宫殿的大门关上,而那扇门,是青蛙国王无法企及的高度。
于是,在某次元中,善良而富有童心的小H决定帮助可怜的青蛙,使青蛙能通过台阶越过命运的大门。

【输入】
第一行,一个整数n,表示目前有n块可以用来制造台阶的石头。
接下来n行,每行三个整数li,wi,hi,分别表示第i块石头的长、宽、高。为了方便青蛙国王进行跳跃,小H在放置第i(i>1)时必须保证,li<li-1并且wi<wi-1。

【输出】
一行,一个整数,表示这些石头能够堆成的最大高度。
另:每块石头都可以拆分成高度分别为li、wi、hi的三块石头,另两边作为长和宽,保证长>=宽。

【样例输入1】
1
10 20 30

【样例输出1】
40

【样例输入2】
2
6 8 10
5 5 5
【样例输出2】
21

【样例输入3】
5
31 41 59
26 53 58
97 93 23
84 62 64
33 83 27

【样例输出3】
342

【数据范围】
对于30%的数据 n<=8
对于100%的数据 n<=3000,最后答案不会超过32位整型