杭电ACM1194——Beat the Spread!

来源:互联网 发布:中国人寿储备主管知乎 编辑:程序博客网 时间:2024/06/04 00:58

简单的数学题目,就是解方程。

不过需要注意的是,解出来的两个解没有负数。

输入m和n,方程1:x + y = m;方程2:| x - y | = n;

x = (n + m)/ 2; y = (-n + m)/ 2;

注意:n + m和m - n 必须是偶数!~~做个判断就OK了。

AC的代码:

#include <iostream>using namespace std;int main(){int t, a, b;cin >> t;while(t--){cin >> a >> b;if((b + a) % 2 && (-b + a) % 2){cout << "impossible" << endl;continue;}int ans_1 = (b + a) / 2;int ans_2 = (-b + a) / 2;if(ans_1 > 0 && (b + a) % 2 == 0 && a - ans_1 > 0)cout << ans_1 << ' ' << a - ans_1 << endl;else if(ans_2 > 0 && (-b + a) % 2 == 0 && a - ans_2 > 0)cout << ans_2 << ' ' << a - ans_2 << endl;elsecout << "impossible" << endl;}return 0;}


1 0
原创粉丝点击