问题描述
TT有一个A×B×C的长方体。这个长方体是由A×B×C个1×1×1的小正方体组成的。
现在TT想给每个小正方体涂上颜色。
需要满以下三点条件:
1、每个小正方体要么涂成红色,要么涂成蓝色。
2、所有红色的小正方体组成一个长方体。
3、所有蓝色的小正方体组成一个长方体。
现在TT想知道红色小正方体的数量和蓝色小正方体的数量的差异。
你需要找到红色正方体的数量与蓝色正方体的数量差值的绝对值的最小值。
即min{|红色正方体数量 - 蓝色正方体数量|}。
【输入】
输入仅一行,三个数A B C (2≤A,B,C≤10^9)。
【输出】
输出一个数字。
即差值绝对值的最小值。
【样例输入】
333 9
224 0
535 15
问题分析
1、当长方体的长宽高中存在偶数时,长方体可以被分为等同的两部分,可以使红色和蓝色部分相同,则差值为0
2、当长宽高都为奇数,无法同等分割时,红色和蓝色颜色的差值最小为某一边长为1的长方体,则最小体积为长宽高中最小的两值乘积的结果
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
long long a[3],sum;
cin>>a[0]>>a[1]>>a[2];
if((a[0]%2==0)||(a[1]%2==0)||(a[2]%2==0))
{
sum=0;
}
else
{
sort(a,a+3);
sum=a[0]*a[1];
}
cout<<sum<<endl;
}