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

· · 题解

思路

  1. 分别取 X,Y,Z 的最小值,再相乘;
  2. 因为可以任意旋转,所以从小到大排个序;
  3. 开 long long!

    代码

    
    #include<bits/stdc++.h>
    #define int long long
    //必须开long long 
    using namespace std;
    const int m=0x3f3f3f3f;//极大值 
    int n,x,y,z;
    int a=m,b=m,c=m,ans;
    signed main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>x>>y>>z;
        int v[3];
        v[0]=x,v[1]=y,v[2]=z;
        sort(v,v+3);//排序,因为可以翻转,默认从小到大 
        a=min(a,v[0]);
        b=min(b,v[1]);
        c=min(c,v[2]);
        //分别计算x y z最小值 
    }
    ans=a*b*c;//最终结果为它们的积 
    cout<<ans;
    return 0;
    }

~点个赞喵。~