import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
import java.util.Stack;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int g=0;
while (sc.hasNext())
{
g++;
int cnm = sc.nextInt();
if (cnm==0)break;
ArrayList<node> list=new ArrayList<node>();
for (int i = 0; i < cnm; i++)
{
int x,y,z;x=sc.nextInt();y=sc.nextInt();z=sc.nextInt();
list.add(new node(x, y, z));list.add(new node(x, z,y));list.add(new node(y, x, z));
list.add(new node(y, z, x));list.add(new node(z, x, y));list.add(new node(z, y, x));
}Collections.sort(list);
int dp[]=new int[list.size()]; int max=0;
for (int i = 0; i < list.size(); i++)
{
dp[i]=list.get(i).z;
for (int j = 0; j <i; j++)
{
if (list.get(i).x>list.get(j).x&& list.get(i).y>list.get(j).y)
{
dp[i]=Math.max(dp[i], dp[j]+list.get(i).z);
}
}
max=Math.max(max, dp[i]);
}
System.out.println("Case "+g+": maximum height = "+max);
}
}
}
class node implements Comparable<node>{
int x,y,z;
public node(int x,int y,int z) {
this.x=x;this.y=y;this.z=z;
}
@Override
public int compareTo(node o)
{
if (x>o.x)return 1;
else if(x<o.x)return -1;
else return y-o.y;
}
}
hdu1069
最新推荐文章于 2024-06-12 23:05:18 发布