[ARC013B] 引越しできるかな? 题解
Nameless_Face · · 题解
题目大意:输入
大概思路:按每个长方体的长宽高的大小顺序排序,将排序后的数据从大到小命名为长、宽、高,分别求出所有长方体的长、宽、高的最大值,求他们的乘积。
证明:因为长方体的长宽高按任意顺序交换不改变长方体大小,题目也默许对其进行翻转,所以思路成立。
代码实现:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n, a, b, c, x = 0x7f, x2, x3 = -1, max1 = -1, max2 = -1, max3 = -1;
cin >> n;
for(int i = 1;i <= n;++i){
cin >> a >> b >> c;
x = min(min(a, b), c);//求最小
x3 = max(max(a, b), c);//求最大
x2 = a + b + c - x - x3;//剩下的值
max1 = max(max1, x);//目前最大值
max2 = max(max2, x2);
max3 = max(max3, x3);
}
cout << max1 * max2 * max3 << endl;//求解
return 0;
}
不知道为什么题解界面未显示,重交一遍,请管理见谅