2016年5月10日 星期二

UVA 10812 Beat the Spread!

/*
    題目連結

    簡單的解二元一次
    s = x+y, d = x-y
    => x = (s+d)/2, y = (s-d)/2
    要注意 x,y算出來要是非負的整數
*/
#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int n;
    scanf("%d", &n);

    for(int ni = 0; ni < n; ni++)
    {
        int s, d;
        scanf("%d %d", &s, &d);

        bool possible = true;
        if( (s+d)%2 != 0 ) possible = false;

        int x = (s+d)/2, y = (s-d)/2;
        if( y < 0 ) possible = false;

        if( possible ) printf("%d %d\n", x, y);
        else puts("impossible");
    }
}

沒有留言:

張貼留言