hdu 1069 mokey and banana

#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;
}

                                        
                   
                   
                   
                   
                   
                   
                   
                   
                   
                                             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值