题解:P14643 [POI 2025/2026 #1] 托运 / Carry-on luggage
P14643 [POI 2025/2026 #1] 托运 / Carry-on luggage
双倍经验。
solution
发现行李箱可以旋转,故每个包装盒的尺寸就是由排序后的三条棱所限制的。
那么思路就有了。
对每个行李箱的三边排序,取所有行李箱排序后每条边的最小值作为行李箱的棱长,它们的乘积就是最大的体积。
AC code
#include <bits/stdc++.h>
#define debug(a) cerr << (#a) << " = " << (a) << endl;
#define rep(i, a, b) for (int i = (a); i <= (b); i++)
#define int long long
#define maxn 100010
#define endl '\n'
using namespace std;
int n, x, y, z, a[maxn];
signed main() {
cin >> n;
x = y = z = LLONG_MAX;
for (int i = 1; i <= n; i++) {
cin >> a[1] >> a[2] >> a[3];
sort(a + 1, a + 4);
x = min(x, a[1]), y = min(y, a[2]), z = min(z, a[3]);
}
cout << x * y * z << endl;
return 0;
}