`

【TMD的陷阱题】HDU 2143 box

阅读更多
http://acm.hdu.edu.cn/showproblem.php?pid=2143


注意三点:①分母为0  ②要先判定整除性  ③数比较大,要用int64


#include <iostream>
using namespace std;
#define L __int64

bool isok (L a, L b, L c)
{
	if (a + b == c || a + c == b || b + c == a)
		return true;
	if (a - b == c || b - a == c || b - c == a || c - b == a || c - a == b || a - c == b)
		return true;
	if (a * b == c || a * c == b || b * c == a)
		return true;
	if (b != 0 && (a % b == 0 && a / b == c || c % b == 0 && c / b == a || c % b == a || a % b == c))
		return true;
	if (a != 0 && (b % a == 0 && b / a == c || c % a == 0 && c / a == b || c % a == b || b % a == c))
		return true;
	if (c != 0 && (a % c == 0 && a / c == b || b % c == 0 && b / c == a || a % c == b || b % c == a))
		return true;
	return false;
}

int main()
{
	L a, b, c;
	while (~scanf ("%I64d%I64d%I64d", &a, &b, &c))
	{
		if (isok (a, b, c))
			puts ("oh,lucky!");
		else puts ("what a pity!");
	}
	return 0;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics