#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct stu{
int x,y,z,h;
}s[1000];
int cmp1(const void*a,const void*b)
{
return *(int *)b-*(int *)a;
}
int cmp2(const void*a,const void*b)
{
struct stu *c,*d;
c=(struct stu*)a;
d=(struct stu*)b;
return d->x*d->y-c->x*c->y;
}
int main()
{
int n,i,a[3],m,max,j,q=1;;
while(scanf("%d",&n)!=-1,n)
{
memset(s,0,sizeof(s));
i=0;
while(n--)
{
scanf("%d%d%d",&a[0],&a[1],&a[2]);
qsort(a,3,sizeof(a[0]),cmp1);
s[i].x=a[0];s[i].y=a[1];s[i++].z=a[2];
s[i].x=a[1];s[i].y=a[2];s[i++].z=a[0];
s[i].x=a[0];s[i].y=a[2];s[i++].z=a[1];
}
m=i;
qsort(s,m,sizeof(s[0]),cmp2);
s[0].h=s[0].z;
for(i=1;i<m;i++)
{
max=0;
for(j=0;j<i;j++)
{
if(s[j].h>max&&s[j].x>s[i].x&&s[j].y>s[i].y)
max=s[j].h;
}
s[i].h=s[i].z+max;
}
max=0;
for(i=0;i<m;i++)
{
if(s[i].h>max)
max=s[i].h;
}
printf("Case %d: maximum height = %d\n",q++,max);
}
return 0;
}
Monkey and Banana(dp)
最新推荐文章于 2020-04-25 13:27:22 发布