题意:
题目描述
TT有一个A×B×C的长方体。这个长方体是由A×B×C个1×1×1的小正方体组成的。
现在TT想给每个小正方体涂上颜色。
需要满以下三点条件:
每个小正方体要么涂成红色,要么涂成蓝色。
所有红色的小正方体组成一个长方体。
所有蓝色的小正方体组成一个长方体。
现在TT想知道红色小正方体的数量和蓝色小正方体的数量的差异。
你需要找到红色正方体的数量与蓝色正方体的数量差值的绝对值的最小值。
即min{|红色正方体数量 - 蓝色正方体数量|}。
输入格式
输入仅一行,三个数A B C (2≤A,B,C≤10^9)。
输出格式
输出一个数字。
即差值绝对值的最小值。
思路:
可以发现,三条边中如果有偶数,则可以将长方体对半分开,即答案为0。否则三条边都是奇数,分配时会有一个小长方体多出一行正方体。于是求出这一行正方体的最小值min{a * b,b * c,a * c},它就是答案。
总结:
一道简单的签到题,要尽快AC,给后续题目留出足够时间。(虽然不一定能做出来后续题目)
代码:
#include <iostream>
#include <cmath>
using namespace std;
long long int a,b,c;
long long int ans;
int main()
{
cin>>a>>b>>c;
if(a%2==0||b%2==0||c%2==0)
ans=0;
else
{
long long int ans1=a*b*1;
long long int ans2=b*c*1;
long long int ans3=a*c*1;
ans=min(ans1,ans2);
ans=min(ans,ans3);
}
cout<<ans<<endl;
}