【題解】ZeroJudge c004: 10812 – Beat the Spread!

【題目敘述】https://zerojudge.tw/ShowProblem?problemid=c004
【解題想法】

  • 假設2隊的分數大者為 x,小者為 y。
    • s = x + y
    • d = x – y
  • s + d = 2 x,必為偶數
  • s – d = 2 y,必定大於等於零。
#include <iostream>
using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int T, s, d;
    cin >> T;
    while (T--){
        cin >> s >> d;
        if ((s + d) % 2 || s < d) cout << "impossible\n";
        else {
            cout << (s+d)/2 << " " << (s-d)/2 << "\n";
        }
    }
    return 0;
}

Python code (credit: Amy Chou)

T = int(input())
for t in range(T):
    s, d = map(int, input().split())
    if (s+d)%2 != 0 or s < d:
        print('impossible')
    else:
        print((s + d) // 2, (s - d) // 2)
分享本文 Share with friends