题目
TT有一个A×B×C的长方体。这个长方体是由A×B×C个1×1×1的小正方体组成的。
现在TT想给每个小正方体涂上颜色。
需要满以下三点条件:
每个小正方体要么涂成红色,要么涂成蓝色。
所有红色的小正方体组成一个长方体。
所有蓝色的小正方体组成一个长方体。
现在TT想知道红色小正方体的数量和蓝色小正方体的数量的差异。
你需要找到红色正方体的数量与蓝色正方体的数量差值的绝对值的最小值。
即min{|红色正方体数量 - 蓝色正方体数量|}。
输入格式
输入仅一行,三个数A B C (2≤A,B,C≤10^9)。
输出格式
输出一个数字。
即差值绝对值的最小值。
样例
Simple Input 1
3 3 3
Simple Output 1
9
Simple Input 2
2 2 4
Simple Output 2
0
Simple Input 3
5 3 5
Simple Output 3
15

解题思路
首先我们要判断3条边里有没有偶数边
如果有,那么肯定是0
(因为沿着偶数边对切就好了)
如果3条都是奇数边,那么,最小的,一定是一块面积。
就是尽量沿着中间切,但是肯定会有一边是多一块的。
所以我们要算出3个不同面的面积。
然后比较
最小的输出
代码实现
#include<iostream>
using namespace std;
int main()
{
long long a,b,c;
cin>>a>>b>>c;
if(a%2==0 || b%2==0 || c%2==0) cout<<0;
else {
long long res[3];
res[0] = a*b;
res[1] = b*c;
res[2] = c*a;
long long min = 1e18 + 1;
for(int i=0;i<3;i++)
{
if(min > res[i]) min = res[i];
}
cout<<min;
}
return 0;
}

被折叠的 条评论
为什么被折叠?



