题目传送门。
题目简化
给定一个可以旋转的长方体,使其体积最大且可以放入 \(N\) 个长方体中,求它的体积的最大值。
题目思路
先将每个长方体的长宽高排序成 \(X_i \le Y_i \le Z_i\)
的形式。求出 \(N\) 长方体长、宽、高的最小值,最后求出其体积。
注意
- 不开 \(long long\) 见祖宗。
- 将最小值变量初值赋为最大。
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,x[100010],y[100010],z[100010];
int mx=0x3f3f3f3f3f3f3f3f,my=0x3f3f3f3f3f3f3f3f,mz=0x3f3f3f3f3f3f3f3f;
signed main(){cin>>n;for(int i=1;i<=n;i++){cin>>x[i]>>y[i]>>z[i];if(x[i]>y[i]) swap(x[i],y[i]);if(x[i]>z[i]) swap(x[i],z[i]);if(y[i]>z[i]) swap(y[i],z[i]);//排序mx=min(x[i],mx);//求最小值my=min(y[i],my);mz=min(z[i],mz);}cout<<mx*my*mz;return 0;
}
