HDU 1149 Beat the Spread!
超级碗周日就要到了。为了打发半天等待商业广告和衣柜故障的时间,当地黑客组织了一个赌球游戏。会员们把赌注押在最后两个分数的总和上,或者两个分数之间的绝对差。
给出每种类型的赌注的中奖号码,你能推断出最后的分数吗?
输入
输入的第一行包含n,即测试用例的数量。接下来是n行,每行代表一个测试用例。每个测试用例给出s和d,非负整数,表示两个最终分数之间的和和(绝对)差。
输出
对于每个测试用例,输出一行给出两个最终得分,最大的第一个。如果没有这样的分数,输出一行包含“不可能”。回想一下足球成绩总是非负整数。
Sample Input
2
40 20
20 40
Sample Output
30 10
impossible
care:输入a b,注意俩种情况
1.a<b
2.a,b一个为奇数一个为偶数
除去这俩种情况就可以的答案了
#include<iostream>
#include<string>
using namespace std;
int main()
{
int a, b, n; cin >> n; int x, y;
while (n--)
{
cin >> a >> b;
if (a < b)cout << "impossible" << '\n';//除去a<b的情况
else if ((a + b) % 2 != 0)cout << "impossible" << '\n';//确保a,b和与差同奇偶
else
{
x = (a + b) / 2; y = (a - b) / 2;
cout << x << ' ' << y << '\n';
}
}
}

434

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



