题解:P14643 [POI 2025/2026 #1] 托运 / Carry-on luggage
Nottingham_Forest · · 题解
题目传送门
比较久没看到这样比较简单的题了。
思路
注意到对于每条航线可以任意旋转,所以我们可以先对每条航线的长宽高进行从小到大的排序,接着对每个取最小值,再将三个最小值乘起来就可以了。
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,X=1e6+1,Y=1e6+1,Z=1e6+1,a[4];//初始化
signed main(){
scanf("%lld",&n);
for(int i=1;i<=n;i++)
{
scanf("%lld%lld%lld",&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]);//取最小值
}
printf("%lld",X*Y*Z);//输出乘积
}