CPE 一顆星選集 49 道必考題
題目連結:https://zerojudge.tw/ShowProblem?problemid=c004
內容
給定兩數之和 a 、差 b (正數),判斷兩數是否為大於等於 0 的整數。
第一列數字代表有幾組測資。如果條件成立,輸出兩數(大的在前),不成立則輸出「impossible」。
範例輸入
4
40 20
20 40
5 1
100 1
範例輸出
30 10
impossible
3 2
impossible
想法
解二元一次聯立方程式。
X + Y = a
X - Y = b
程式碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #include <bits/stdc++.h> #define fastio ios_base::sync_with_stdio(false), cin.tie(nullptr) using namespace std;
int main(){ fastio; int n, s, d, x, y; cin >> n; while(n--){ cin >> s >> d; if((s+d) & 1) cout << "impossible"; else { x = (s+d) >> 1; y = s-x; if(y < 0) cout << "impossible"; else cout << x << " " << y; } cout << "\n"; } return 0; }
|