[Cpp] Description: n cuboids are provided. There are countless cuboids. The height of these cuboids is increased in sequence by decreasing the length and width, what is the maximum height? # include <cstdio> # include <cstdlib> int n, m, t, sum; int arr [100] [3]; int max (int x, int y) {return x> y? X: y;} void swap (int & x, int & y) {if (x> y) {int temp = x; x = y; y = temp ;}} int cmp (const void * p1, const void * p2) {if (int *) p1) [1]> (int *) p2) [1]) return 1; else if (int *) p1) [1] <(int *) p2) [1]) return-1; else {if (int *) p1) [2]> (int *) p2) [2]) return 1; else return-1 ;}} int main () {// freopen ("a.txt", "r", stdin); t = 1; while (scanf ("% d", & n )! = EOF) {if (! N) break; n * = 3; sum = 0; for (int I = 0; I <n; I ++) {scanf ("% d ", & arr [I] [0], & arr [I] [1], & arr [I] [2]); sum = max (arr [I] [0], arr [I] [1]), arr [I] [2]), sum ); arr [I + 1] [0] = arr [I] [1], arr [I + 1] [1] = arr [I] [2], arr [I + 1] [2] = arr [I] [0]; arr [I + 2] [0] = arr [I] [2], arr [I + 2] [1] = arr [I] [0], arr [I + 2] [2] = arr [I] [1]; swap (arr [I] [1], arr [I] [2]); swap (arr [I + 1] [1], arr [I + 1] [2]); swap (arr [I + 2] [1], arr [I + 2] [2]); I + = 2 ;} qsort (arr, n, sizeof (arr [0]), cmp); for (int I = n-2; I> = 0; I --) {m = 0; for (int j = n-1; j> I; j --) if (arr [I] [1] <arr [j] [1] & arr [I] [2] <arr [j] [2] & m <arr [j] [0]) m = arr [j] [0]; arr [I] [0] + = m; if (arr [I] [0]> sum) sum = arr [I] [0];} printf ("Case % d: maximum height = % d \ n", t ++, sum);} return 0 ;}