题目描述
TT有一个A×B×C的长方体。这个长方体是由A×B×C个1×1×1的小正方体组成的。
现在TT想给每个小正方体涂上颜色。
需要满以下三点条件:
每个小正方体要么涂成红色,要么涂成蓝色。
所有红色的小正方体组成一个长方体。
所有蓝色的小正方体组成一个长方体。
现在TT想知道红色小正方体的数量和蓝色小正方体的数量的差异。
你需要找到红色正方体的数量与蓝色正方体的数量差值的绝对值的最小值。
即min{|红色正方体数量 - 蓝色正方体数量|}。
样例
Input
输入仅一行,三个数A B C (2≤A,B,C≤10^9)。
Output
输出一个数字。
即差值绝对值的最小值。
样例输入
3 3 3
样例输出
9
样例输入
2 2 4
样例输出
0
样例输入
5 3 5
样例输出
15
思路
先找出长方体的长,如果长是偶数,那么红色和蓝色可以平均分配,如果长是奇数,那么红色比蓝色多出(少掉)的小长方体数目应该是1个长×高×宽的数量
代码
#include <iostream>
using namespace std;
int main()
{
long long A,B,C;
cin>>A>>B>>C;
long long maxx=0;
int index=1;
if(A>=B&&A>=C)
{
maxx=A;
index=1;
}
if(B>=A&&B>=C)
{
maxx=B;
index=2;
}
if(C>=A&&C>=B)
{
maxx=C;
index=3;
}
if(maxx%2==0)
cout<<"0"<<endl;
if(maxx%2==1)
{
if(index==1)
cout<<B*C<<endl;
if(index==2)
cout<<A*C<<endl;
if(index==3)
cout<<A*B<<endl;
}
}