#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define FOR(i,n) for(int i=0;i<n;i++)
const int MAXN=30+5;
int n,block[MAXN][3],d[MAXN][3];
void put(int *v,int b,int p){
int t=0;
FOR(i,3) if(i!=p) v[t++]=block[b][i];
}
int dp(int i, int j) {
int &sum=d[i][j];
if(sum>0) return sum;
sum=0;
int v[2], v2[2];
put(v, i, j);
FOR(a,n) FOR(b,3){
put(v2, a, b);
if(v2[0]<v[0] && v2[1]<v[1]) sum=max(sum, dp(a,b));
}
sum+=block[i][j];
return sum;
}
int main(){
int sum = 0;
while(scanf("%d", &n) == 1 && n) {
FOR(i,n) {
FOR(j,3) scanf("%d", &block[i][j]);
sort(block[i], block[i]+3);
}
memset(d, 0, sizeof(d));
int ans=0;
FOR(i,n) FOR(j,3) ans=max(ans, dp(i,j));
printf("Case %d: maximum height = %d\n", ++sum,ans);
}
return 0;
}
POJ2241:The Tower of Babylon
最新推荐文章于 2020-01-17 19:43:38 发布