题解:P14643 [POI 2025/2026 #1] 托运 / Carry-on luggage

· · 题解

Solution

由于行李箱可以旋转,因此让长、宽、高与 x_i,y_i,z_i 中的最大值、次大值、最小值一一对应即可,避免在有更小限制的情况下出现无贡献的大限制,因此直接将输入的 x_i,y_i,z_i 排序,并求其各自的最小值即可求出最终的 X,Y,Z

AC CODE

#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[100005][3],mnx=1e9,mny=1e9,mnz=1e9;
signed main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i][0]>>a[i][1]>>a[i][2],sort(a[i],a[i]+3);
    for(int i=1;i<=n;i++){
        mnx=min(mnx,a[i][0]);
        mny=min(mny,a[i][1]);
        mnz=min(mnz,a[i][2]);
    }cout<<mnx*mny*mnz;
    return 0;
}