#include<iostream>
#include<stdlib.h>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=200;
struct block
{
int l;
int w;
int h;
}B[N];
bool cmp(block a,block b)
{
if(a.l!=b.l)
return a.l<b.l;
else if(a.w!=b.w)
return a.w<b.w;
else
return a.h<b.h;
}
int main()
{
int n,a,b,c,t=0,count;
while(cin>>n&&n)
{ count=0;t++;
for(int i=0;i<n;i++)
{
cin>>a>>b>>c;
B[count].l=a;B[count].w=b;B[count].h=c;count++;
B[count].l=a;B[count].w=c;B[count].h=b;count++;
B[count].l=b;B[count].w=a;B[count].h=c;count++;
B[count].l=b;B[count].w=c;B[count].h=a;count++;
B[count].l=c;B[count].w=a;B[count].h=b;count++;
B[count].l=c;B[count].w=b;B[count].h=a;count++;
}
sort(B,B+count,cmp);
int max,maxlen=0,seqlen[N];
memset(seqlen,0,sizeof(seqlen));
for(int i=0;i<count;i++)
{
max=0;
for(int j=0;j<i;j++)
{
if(B[j].l<B[i].l&&B[j].w<B[i].w&&seqlen[j]>max)
max=seqlen[j];
}
seqlen[i]=B[i].h+max;
if(maxlen<seqlen[i])
maxlen=seqlen[i];
}
printf("Case %d: maximum height = %d\n",t,maxlen);
}
system("pause");
return 0;
}
hdu 1069 mokey and banana
最新推荐文章于 2017-08-08 19:37:05 发布