#B230. Monkey and Banana

Monkey and Banana

题目描述

一组研究人员正在设计一个实验来测试一只猴子的智商。他们将在一栋大楼的屋顶上悬挂一根香蕉,同时为猴子提供一些积木。如果猴子足够聪明,它将能够通过将一块积木放在另一块积木的顶部来接触香蕉,从而建立一个塔,并爬上去获取它最喜欢的食物。

研究人员有n种类型的积木,每种类型的积木都有无限的供应。

每个i型积木都是线性尺寸(xi,yi,zix_i, y_i, z_i)的长方形实体。一个积木可以被调整方向,使其三个维度中的任何两个维度决定了底座的尺寸,另一个维度是高度。

他们想确保通过堆叠积木,使最高的塔能够到达屋顶。问题是,在建塔时,只要上层积木的两个底面尺寸都严格小于下层积木的相应底面尺寸,一个积木就只能放在另一个积木的上面,因为必须有一些空间让猴子踩上去。这就意味着,例如,面向有相同尺寸基座的积木不能堆叠。 你的工作是编写一个程序,确定猴子用一组给定的积木可以建造的最高的塔的高度。

输入

第一行包含一个整数 n,代表以下数据集中不同块的数量。n 的最大值是30。

接下来的 n 行包含三个整数,代表 xix_iyiy_i ziz_i的值。

输出

输出最大高度。

样例

5 
31 41 59 
26 53 58 
97 93 23 
84 62 64 
33 83 27
maximum height = 342